vue-cli3配置

工具

记录vue-cli3创建的项目中 vue.config.js 相关配置。

module.exports = { // 设置静态资源根路径 baseUrl: 'https://www.tongdun.cn', // 设置打包文件路径 outputDir: './dist', // 设置 (css、img、js、fonts)的目录(相对于 outputDir) assetsDir: './static', // 设置 html 页面路径和文件名 indexPath: './view/test.html', // 开启/关闭文件名哈希 filenameHashing: false, // 开启多面应用 pages: { index: { // page 的入口 entry: 'src/index/main.js', // 模板来源 template: 'public/index.html', // 在 dist/index.html 的输出 filename: 'index.html', // 当使用 title 选项时 // template 中的 title 标签需要 <title><%= htmlwebpackPlugin.options.title %></title> title: 'Index Page', // 在这个页面中包含的块,默认情况下会包含 // 提取出来的通用 chunk 和 vendor chunk chunks: ['chunk-vendors', 'chunk-common', 'index'] }, // 当使用只有入口的字符串格式时 // 模板会被推导为 `public/subpage.html` // 并且如果找不到的话,就回退到 `public/index.html` subpage: 'src/subpage/main.js' }, // 当 lintOnSave 是一个 true 的值时,eslint-loader 在开发和生产构建下都会被启用。如果你想要在生产构建时禁用 eslint-loader // TODO: lintOnSave,有 devServer 配置说明 lintOnSave: process.env.NODE_ENV !== 'production', // 是否使用包含运行时编译器的 Vue 构建版本,Default: false。https://cn.vuejs.org/v2/guide/installation.html#%E8%BF%90%E8%A1%8C%E6%97%B6-%E7%BC%96%E8%AF%91%E5%99%A8-vs-%E5%8F%AA%E5%8C%85%E5%90%AB%E8%BF%90%E8%A1%8C%E6%97%B6 runtimeCompiler: false, // 默认情况下 babel-loader 会忽略所有 node_modules 中的文件。如果你想要通过 Babel 显式转译一个依赖,可以在这个选项中列出来。 transpileDependencies: [], // 如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建。 productionSourceMap: true, // 设置生成的 HTML 中 <link rel="stylesheet"> 和 <script> 标签的 crossorigin 属性。https://developer.mozilla.org/zh-CN/docs/Web/HTML/CORS_settings_attributes crossorigin: '', // 在生成的 HTML 中的 <link rel="stylesheet"> 和 <script> 标签上启用 Subresource Integrity (SRI)。如果你构建后的文件是部署在 CDN 上的,启用该选项可以提供额外的安全性。 integrity: false, /** * 这个值是一个对象,则会通过 webpack-merge 合并到最终的配置中 * https://github.com/survivejs/webpack-merge * https://cli.vuejs.org/zh/guide/webpack.html#webpack-%E7%9B%B8%E5%85%B3 */ configureWebpack: {}, /** * 会接收一个基于 webpack-chain 的 ChainableConfig 实例,允许对内部的 webpack 配置进行更细粒度的修改。 * https://github.com/neutrinojs/webpack-chain * https://cli.vuejs.org/zh/guide/webpack.html#%E9%93%BE%E5%BC%8F%E6%93%8D%E4%BD%9C-%E9%AB%98%E7%BA%A7 */ chainWebpack: () => { return {} }, css: { // 只有 *.module.[ext] 结尾的文件才会被视作 CSS Modules 模块 modules: false, // 是否将组件中的 CSS 提取至一个独立的 CSS 文件中 (而不是动态注入到 JavaScript 中的 inline 代码) // 生产环境下是 true,开发环境下是 false extract: false, // 是否为 CSS 开启 source map。设置为 true 之后可能会影响构建的性能。 sourceMap: false, // 向 CSS 相关的 loader 传递选项 // https://cli.vuejs.org/zh/config/#css-loaderoptions loaderOptions: { css: { // 这里的选项会传递给 css-loader }, postcss: { // 这里的选项会传递给 postcss-loader } } }, /* * 配置 webpack-dev-server 选项 * https://cli.vuejs.org/zh/config/#devserver-proxy * https://webpack.js.org/configuration/dev-server/ */ devServer: { proxy: 'http://localhost:4000' }, // 是否为 Babel 或 TypeScript 使用 thread-loader。该选项在系统的 CPU 有多于一个内核时自动启用,仅作用于生产构建 parallel: require('os').cpus().length > 1, // 这是一个不进行任何 schema 验证的对象,因此它可以用来传递任何第三方插件选项 pluginOptions: { foo: { // 插件可以作为 `options.pluginOptions.foo` 访问这些选项。 } }, /** * 添加 node_modules 目录下 babel 转义的文件夹 * https://github.com/vuejs/vue-docs-zh-cn/blob/master/vue-cli-plugin-babel/README.md */ transpileDependencies: [ '@tongdun', ], }