vue.config.js常用配置详解

当你在Vue项目中需要自定义Webpack的配置时,可以通过在项目根目录下创建vue.config.js文件来实现。Vue CLI读取该文件,并根据其中的配置修改Webpack的默认配置以满足你的需要。以下是对vue.config.js文件的常用配置的详细说明。

基本配置

以下是最简单的vue.config.js文件:

module.exports = {
  // 选项...
}

在这个基础上,你可以添加一些选项,以自定义Webpack配置。以下是一些可用选项及其默认值:

publicPath

  • 类型:string
  • 默认值:'/'
  • 作用:部署应用时的基本 URL。用法和 webpack 本身的 output.publicPath 一致,但 vue-cli 在一些其他地方也需要用到这个值,所以请始终使用 publicPath 而不要直接修改 webpack 的 output.publicPath。

outputDir

  • 类型:string
  • 默认值:'dist'
  • 作用:当运行 vue-cli-service build 时生成的生产环境构建文件的目录。

assetsDir

  • 类型:string
  • 默认值:''
  • 作用:放置生成的静态资源 (js、css、img、fonts) 的目录的相对路径,默认值为 '',即在直接放在输出目录中(也可以是一个相对于outputDir的子目录)

indexPath

  • 类型:string
  • 默认值:'index.html'
  • 作用:指定生成的 index.html 的输出路径 (相对于 outputDir)。也可以是一个绝对路径。

以下是一个示例:

module.exports = {
  publicPath: process.env.NODE_ENV === 'production'
    ? '/production-sub-path/'
    : '/'
}

这个示例中,如果你运行 npm run build 命令,那么你的 production 构建输出文件将生成在我的部署域名的 /production-sub-path/ 下面。

高级配置

如果你需要更细粒度地控制某个部分的Webpack配置,你可以通过使用chainWebpack选项,手动修改Webpack配置。这个选项会接收一个 Webpack Chain Instance,允许对内部的Webpack配置进行更细粒度的修改。

以下是一个示例,用于将所有的内敛svg图标转为外链引用:

module.exports = {
  chainWebpack: config => {
    //原生vue.config.js生成的webpack.config.js  
    //不知道如何新建一个vue.config.js的同学可以  
    //运行 vue ui,通过web界面创建,自动创建。
    //向config.module.rules中添加一个rule
    config.module
      .rule('svg-inline')
      .test(/\.(svg)(\?.*)?$/)
      .use('svg-inline-loader')
      .loader('svg-inline-loader')
      .end();

    //以html-webpack-plugin插件的参数为例
    //更改html-webpack-plugin的html处理方式
    config.plugin('html')
      .tap(args => {
        args[0].inlineSource = '.(svg|png|jpg|gif)$';
        return args;
      });

    //更改url-loader的处理方式
    config.module
      .rule('images')
      .use('url-loader')
      .tap(options => {
        options.limit = 10240;
        return options;
      });
  }
};

chainWebpack是一个回调,可以访问内部的Webpack配置。

Vue CLI 默认将webpack-dev-server客户端入口添加到生成的index.html,以自动注入代表客户端的脚本路径,以实现实时重载和相应注销。如果你的应用程序需要比默认更复杂的html结构,你可以通过configureWebpack选项更改其行为。

以下是一个示例:

module.exports = {
  configureWebpack: {
    plugins: [
      new MyAwesomeWebpackPlugin()
    ]
  }
};

这个示例中,我们向内部的Webpack配置添加了自定义插件MyAwesomeWebpackPlugin。

总结

在这篇文章中,我们介绍了vue.config.js常用配置,并提供了一些示例。我们看到,通过Vue CLI提供的选项,可以轻松地自定义Vue项目的Webpack配置。如果你需要更细粒度地控制Webpack配置,你可以使用chainWebpack和configureWebpack选项进行修改。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue.config.js常用配置详解 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • Vue简易版无限加载组件实现原理与示例代码

    那么现在我将为您详细讲解“Vue简易版无限加载组件实现原理与示例代码”的完整攻略。 1. 组件原理 Vue简易版无限加载组件的实现原理是使用Vue自定义指令和Intersection Observer API。 1.1 自定义指令 使用Vue自定义指令来实现组件的监听滚动事件和判断元素是否达到页面底部的功能。定义指令时,可以使用Vue提供的bind、inse…

    Vue 2023年5月28日
    00
  • Vue中的 ref,props,mixin属性

    下面是对Vue中ref、props、mixin属性的详细讲解攻略: 1. ref属性 1.1 简介 ref 属性是 vue 框架的一个特定属性,它可以让我们在 vue 组件中获得特定的 dom 节点或组件实例。如果我们在组件的模板中使用 ref,例如 ref=”myRef”,那么在 vue 实例中就可以以 this.$refs.myRef 的形式访问到该元素…

    Vue 2023年5月28日
    00
  • vue项目中引入vue-datepicker插件的详解

    引入 vue-datepicker 插件,主要需要以下几个步骤: 1. 安装 vue-datepicker 插件 使用 npm 或 yarn 安装该插件: npm install vue-datepicker –save # 或 yarn add vue-datepicker 2. 在 main.js 中注册插件 在 main.js 文件中添加如下代码: …

    Vue 2023年5月29日
    00
  • Vue编译器AST抽象语法树源码分析

    一、概述 Vue是一个流行的JavaScript框架,通过它可以方便地构建可伸缩的单页面应用程序,能够帮助我们快速构建高效且易于维护的Web应用系统。在Vue中,模板被转换成一个抽象语法树(AST),这个AST是通过Vue编译器(parser)将模板代码转换而来的。AST通过获取DOM节点,识别出语言特定的标记和元素,自动创建了一个基于对象表示代码的结构树。…

    Vue 2023年5月27日
    00
  • vue 输入电话号码自动按3-4-4分割功能的实现代码

    实现输入电话号码自动按照 3-4-4 的格式分割,可以通过 Vue 自定义指令实现。以下是具体步骤: 1. 创建自定义指令 在 Vue 中创建自定义指令可以通过 Vue.directive 方法实现。该方法有两个参数,第一个参数是指令名称,第二个参数是指令回调函数。 Vue.directive(‘phone’, { bind: function(el, bi…

    Vue 2023年5月27日
    00
  • vue 实现小程序或商品秒杀倒计时

    当需要在网站中实现小程序或商品秒杀倒计时功能时,可以使用 Vue.js 框架来进行实现。这里提供一个完整的攻略,介绍如何使用 Vue.js 实现这个功能。 步骤一:安装 Vue.js 首先需要安装 Vue.js,在命令行中输入以下命令: npm install vue 安装完成之后,可以在 HTML 中引入 Vue.js: <script src=&q…

    Vue 2023年5月27日
    00
  • vue中优雅实现数字递增特效的详细过程

    下面我将详细讲解“Vue中优雅实现数字递增特效的详细过程”。 步骤一:安装插件 Vue中实现数字递增特效需要使用一个叫vue-countup-v2的插件,这个插件可以实现数字的缓动、格式化等功能。我们可以通过npm安装这个插件,在命令行中输入以下命令: npm install –save vue-countup-v2 步骤二:注册组件 在我们使用这个插件之…

    Vue 2023年5月28日
    00
  • 一文搞懂Vue八大生命周期钩子函数

    一文搞懂Vue八大生命周期钩子函数 Vue组件的生命周期分为8个阶段,每个阶段都有对应的钩子函数,这些钩子函数可以让我们在组件的不同生命周期阶段做出相应的操作。以下是八大生命周期钩子函数: 1. beforeCreate 在实例化Vue对象之前,会先执行beforeCreate钩子函数。在这个阶段,实例的属性、方法等都没有被初始化,因此在这个钩子函数中不能访…

    Vue 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部