vue.config.js全部详细配置

vue.config.js 是一个可选的配置文件,如果项目的根目录中没有这个文件,你需要手动创建它。这个文件是一个 Node.js 模块,会导出一个包含了 Vue CLI 项目配置的对象。

下面是一些常见的 vue.config.js 配置项:

基本路径

js 复制代码
module.exports = {  
  publicPath: './'  
}

输出目录

java 复制代码
javascript复制代码
	module.exports = {  

	  outputDir: 'dist'  

	}

放置生成的静态资源 (js、css、img、fonts)

java 复制代码
javascript复制代码
	module.exports = {  

	  assetsDir: ''  

	}

配置 webpack-dev-server 行为

markdown 复制代码
javascript复制代码
	module.exports = {  

	  devServer: {  

	    port: 8080, // 端口号  

	    open: true, // 自动打开浏览器  

	    hotOnly: false, // 热更新  

	    proxy: { // 配置跨域  

	      '/api': {  

	        target: '<url>',  

	        ws: true,  

	        changeOrigin: true  

	      },  

	      '/foo': {  

	        target: '<other_url>'  

	      }  

	    }  

	  }  

	}

配置 webpack

markdown 复制代码
javascript复制代码
	module.exports = {  

	  configureWebpack: {  

	    plugins: [  

	      // 配置插件  

	    ]  

	  },  

	  chainWebpack: config => {  

	    // 修改 webpack 配置  

	  }  

	}

CSS 相关配置

markdown 复制代码
javascript复制代码
	module.exports = {  

	  css: {  

	    loaderOptions: {  

	      sass: {  

	        prependData: `@import "@/styles/variables.scss";`  

	      }  

	    }  

	  }  

	}

配置 devtools

java 复制代码
javascript复制代码
	module.exports = {  

	  devtool: 'source-map'  

	}

生产环境构建

java 复制代码
javascript复制代码
	module.exports = {  

	  productionSourceMap: false, // 是否生成 sourceMap 文件  

	  parallel: require('os').cpus().length - 1, // 构建时启用多进程  

	  // 其他 webpack 配置...  

	}

配置 pwa

markdown 复制代码
javascript复制代码
	module.exports = {  

	  pwa: {  

	    name: 'My App',  

	    themeColor: '#4DBA87',  

	    msTileColor: '#000000',  

	    appleMobileWebAppCapable: 'yes',  

	    appleMobileWebAppStatusBarStyle: 'black',  

	    iconPaths: {  

	      favicon32: 'favicon.ico',  

	      favicon16: 'favicon.ico',  

	      appleTouchIcon: 'icons/apple-touch-icon-152x152.png',  

	      maskIcon: 'icons/safari-pinned-tab.svg',  

	      msTileImage: 'icons/msapplication-icon-144x144.png'  

	    }  

	  }  

	}

配置 Babel

markdown 复制代码
javascript复制代码
	module.exports = {  

	  babel: {  

	    presets: [  

	      // 预设配置  

	    ],  

	    plugins: [  

	      // 插件配置  

	    ]  

	  }  

	}

第三方插件配置

markdown 复制代码
javascript复制代码
	module.exports = {  

	  // 其他插件的配置  

	  pluginOptions: {  

	    // 例如配置 element-ui 插件  

	    elementUi: {  

	      size: 'small'  

	    }  

	  }  

	}

这些只是 vue.config.js 的一些常见配置项,实际上还有很多其他的配置项和细节可以调整。你可以根据项目的实际需求进行配置。

注意:上述示例中的 <url><other_url> 需要替换为你实际的 URL。同时,这些配置项并不一定都需要在你的 vue.config.js 文件中全部列出,你可以只选择你需要的配置项进行配置。

vue.config.js 中,configureWebpack 选项允许你修改内部的 Webpack 配置。这给了你很大的灵活性来添加或覆盖默认配置。

configureWebpack 的详细配置示例:

markdown 复制代码
javascript复制代码
	module.exports = {  

	  configureWebpack: {  

	    // 添加全局变量  

	    plugins: [  

	      new webpack.DefinePlugin({  

	        'process.env.VUE_APP_TITLE': JSON.stringify('My App')  

	      })  

	    ],  

	  

	    // 修改输出  

	    output: {  

	      // 输出目录(相对于 process.cwd() 或 outputDir)  

	      path: path.resolve(__dirname, 'dist'),  

	      // 文件名  

	      filename: '[name].[contenthash].js',  

	      // 其他的输出配置...  

	    },  

	  

	    // 修改模块解析规则  

	    resolve: {  

	      // 别名配置  

	      alias: {  

	        '@': path.resolve(__dirname, 'src')  

	      },  

	      // 其他的解析配置...  

	    },  

	  

	    // 修改模块规则  

	    module: {  

	      rules: [  

	        {  

	          test: /.vue$/,  

	          loader: 'vue-loader',  

	          options: {  

	            // vue-loader 配置项  

	            compilerOptions: {  

	              isCustomElement: tag => tag === 'my-custom-element'  

	            }  

	          }  

	        },  

	        // 其他规则...  

	      ]  

	    },  

	  

	    // 优化和性能  

	    optimization: {  

	      splitChunks: {  

	        chunks: 'all', // 对同步加载和异步加载的chunks都进行分割  

	      },  

	      minimize: true, // 开启压缩  

	    },  

	  

	    // 添加或覆盖 devtool 配置  

	    devtool: 'source-map',  

	  

	    // 修改其他 Webpack 配置项...  

	  }  

	}

在上面的示例中:

  • 使用 webpack.DefinePlugin 添加了一个全局变量 process.env.VUE_APP_TITLE
  • 修改了输出的目录和文件名。
  • 添加了别名配置,使得 @ 可以直接指向 src 目录。
  • .vue 文件加载器 vue-loader 进行了配置。
  • 启用了代码分割和压缩。
  • 设置了 source map。

你可以根据需要修改或添加更多的 Webpack 配置项。记住,任何你添加或修改的配置都应该遵循 Webpack 的配置规范。

请注意,configureWebpack 是一个对象,因此你可以在其中添加任何有效的 Webpack 配置。如果你想要完全替换掉默认的 Webpack 配置,可以使用 configureWebpack.rendererconfigureWebpack.server 字段分别针对客户端和服务器端进行配置。

最后,确保你使用的 Webpack 配置项与你的 Webpack 版本兼容,因为不同版本的 Webpack 可能会有不同的配置项和语法。

相关推荐
会跑的葫芦怪29 分钟前
若依Vue 项目多子路径配置
前端·javascript·vue.js
pas1363 小时前
40-mini-vue 实现三种联合类型
前端·javascript·vue.js
军军君015 小时前
Three.js基础功能学习十三:太阳系实例上
前端·javascript·vue.js·学习·3d·前端框架·three
Hi_kenyon6 小时前
理解vue中的ref
前端·javascript·vue.js
毎天要喝八杯水10 小时前
搭建vue前端后端环境
前端·javascript·vue.js
东东51613 小时前
果园预售系统的设计与实现spingboot+vue
前端·javascript·vue.js·spring boot·个人开发
怪兽毕设13 小时前
基于SpringBoot的选课调查系统
java·vue.js·spring boot·后端·node.js·选课调查系统
Amumu1213813 小时前
Vue Router(一)
前端·javascript·vue.js
切糕师学AI14 小时前
VSCode 下如何检查 Vue 项目中未使用的依赖?
vue.js·vscode
我是伪码农14 小时前
Vue 1.30
前端·javascript·vue.js