找回密码
 注册
首页 ≡≡网络技术≡≡ WEB前端 vue配置文件:vue.config.js

框架 vue配置文件:vue.config.js

灰儿 2022-8-8 10:30:26
创建vue.config.js
vue.config.js 是一个可选的配置文件,如果项目的 (和 package.json 同级的) 根目录中存在这个文件,那么它会被 @vue/cli-service 自动加载。你也可以使用 package.json 中的 vue 字段,但是注意这种写法需要你严格遵照 JSON 的格式来写。
官方文档:
https://cli.vuejs.org/zh/config/

官网配置参考
  1. module.exports = {
  2.   // 部署应用包时的基本 URL
  3.   publicPath: process.env.NODE_ENV === 'production'
  4.     ? '//your_url'
  5.     : '/',
  6.    
  7.   // 运行 vue-cli-service build 时生成的生产环境构建文件的目录
  8.   // 默认构建前清除文件夹(构建时传入 --no-clean 可关闭该行为
  9.   outputDir: 'dist',

  10.   // 放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录
  11.   assetsDir: 'static',

  12.   // 指定生成的 index.html 的输出路径 (相对于 outputDir),也可以是一个绝对路径
  13.   indexPath: 'index.html',

  14.   // 生成的静态资源在它们的文件名中包含了 hash 以便更好的控制缓存
  15.   filenameHashing: true,

  16.   // 当在 multi-page 模式下构建时,webpack 配置会包含不一样的插件
  17.   // (这时会存在多个 html-webpack-plugin 和 preload-webpack-plugin 的实例)。
  18.   // 如果你试图修改这些插件的选项,请确认运行 vue inspect
  19.   pages: {
  20.     index: {
  21.       // page 的入口
  22.       entry: 'src/pages/index/index.js',
  23.       // 模板来源
  24.       template: 'src/pages/index/index.html',
  25.       // 在 dist 的输出为 index.html
  26.       filename: 'index.html',
  27.       // 当使用 title 选项时,
  28.       // template 中的 title 标签需要是 <title><%= htmlWebpackPlugin.options.title %></title>
  29.       title: '首页',
  30.       // 在这个页面中包含的块,默认情况下会包含
  31.       // 提取出来的通用 chunk 和 vendor chunk。
  32.       chunks: ['chunk-vendors', 'chunk-common', 'index']
  33.     },
  34.     // 当使用只有入口的字符串格式时,
  35.     // 模板会被推导为 `public/subpage.html`
  36.     // 并且如果找不到的话,就回退到 `public/index.html`。
  37.     // 输出文件名会被推导为 `subpage.html`。
  38.    
  39.     // 多入口时,接着写子页面
  40.     //subpage: 'src/subpage/main.js'
  41.   },
  42.   
  43.   // eslint-loader 是否在保存的时候检查
  44.   lintOnSave: true,

  45.   // 是否使用包含运行时编译器的Vue核心的构建
  46.   runtimeCompiler: false,

  47.   // 默认情况下 babel-loader 忽略其中的所有文件 node_modules,
  48.   // 想要通过 Babel 显式转译一个依赖,可以在这个选项中列出来
  49.   transpileDependencies: [],

  50.   // 生产环境 sourceMap
  51.   productionSourceMap: false,
  52.   
  53.   // 跨域设置
  54.   // 可取值参考: https://developer.mozilla.org/zh-CN/docs/Web/HTML/CORS_settings_attributes
  55.   crossorigin: undefined,
  56.   
  57.   // 构建后的文件是部署在 CDN 上的,启用该选项可以提供额外的安全性, 默认false
  58.   integrity: false,
  59.   
  60.   // webpack 配置,键值对象时会合并配置,为方法时会改写配置
  61.   // https://cli.vuejs.org/guide/webpack.html#simple-configuration
  62.   configureWebpack: {
  63.       plugins: [
  64.       new MyAwesomeWebpackPlugin()
  65.     ]
  66.   },
  67.   //configureWebpack: (config) => {},

  68.   // webpack 链接 API,用于生成和修改 webapck 配置
  69.   // https://github.com/mozilla-neutrino/webpack-chain
  70.   chainWebpack: (config) => {
  71.     // 因为是多页面,所以取消 chunks,每个页面只对应一个单独的 JS / CSS
  72.     config.optimization
  73.       .splitChunks({
  74.         cacheGroups: {}
  75.       });

  76.     // 'src/lib' 目录下为外部库文件,不参与 eslint 检测
  77.     config.module
  78.       .rule('eslint')
  79.       .exclude
  80.       .add('/Users/maybexia/Downloads/FE/community_built-in/src/lib')
  81.       .end()
  82.   },

  83.   // 配置高于chainWebpack中关于 css loader 的配置
  84.   css: {
  85.     // false 时只有 *.module.[ext] 结尾的文件才会被视作 CSS Modules 模块
  86.     // true 时可以去掉文件名中的 .module, 并将所有的 *.(css|scss|sass|less|styl(us)?) 文件视为 CSS Modules 模块
  87.     modules: false,
  88.    
  89.      // 是否使用 css 分离插件 ExtractTextPlugin,采用独立样式文件载入,不采用 <style> 方式内联至 html 文件中
  90.     // 生产环境下是 true,开发环境下是 false  
  91.     extract: true,

  92.     // 是否构建样式地图,设置为 true 之后可能会影响构建的性能
  93.     sourceMap: false,

  94.     // css预设器配置项
  95.     loaderOptions: {
  96.       css: {
  97.         // 这里的选项会传递给 css-loader
  98.       },

  99.       postcss: {
  100.         // 这里的选项会传递给 postcss-loader
  101.       }
  102.     }
  103.   },

  104.   // 所有 webpack-dev-server 的选项都支持
  105.   // https://webpack.js.org/configuration/dev-server/
  106.   devServer: {
  107.     open: true,

  108.     host: '127.0.0.1',

  109.     port: 3000,

  110.     https: false,

  111.     hotOnly: false,

  112.     // 将任何未知请求 (没有匹配到静态文件的请求) 代理到该字段指向的地方
  113.     proxy: null,

  114.     before: app => {
  115.     }
  116.   },
  117.   // 构建时开启多进程处理 babel 编译
  118.   // 是否为 Babel 或 TypeScript 使用 thread-loader
  119.   parallel: require('os').cpus().length > 1,

  120.   // https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-pwa
  121.   pwa: {},

  122.   // 第三方插件配置
  123.   pluginOptions: {}
  124. };

  125. 作者:ddong
  126. 链接:https://juejin.cn/post/6844903784984870919
  127. 来源:稀土掘金
  128. 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
复制代码

1.'use strict' //声明为严格模式,不能使用未声明的变量

2.const path = require("path") //引入node.js工具模块path,用来处理文件路径的小工具

3.function resolve(dir) {return path.join(__dirname, dir)}  //获取dir的绝对路径

4.const port = process.env.port || process.env.npm_config_port || 9527   //赋值port:如果当前环境端口存在则为当前环境端口,否则找process.env.npm_config_port这个属性,还没有则赋值9527

5.module.exports //commonJS的模块化 注意与ES6模块化的区别

6.publicPath: '/', //部署应用包时的基本 URL

7.outputDir: 'dist', //输出文件目录,当运行 vue-cli-service build 时生成的生产环境构建文件的目录。注意目标目录在构建之前会被清除 (构建时传入 --no-clean 可关闭该行为)。

8.assetsDir: 'static', //放置生成的静态资源 (js、css、img、fonts) 的目录。

9.lintOnSave: false, //是否在保存的时候使用 `eslint-loader` 进行检查,有效的值:`ture` | `false` | `"error"`  当设置为 `"error"` 时,检查出的错误会触发编译失败。

10.productionSourceMap: false,     //如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建。
  1.   // 如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建
  2.   productionSourceMap: true,
复制代码

11.devServer中的proxy // 代理

12.configureWebpack //webpack配置项,详情见 Working with Webpack | Vue CLI

13.transpileDependencies //默认情况下 babel-loader 会忽略所有 node_modules 中的文件。你可以启用本选项,以避免构建后的代码中出现未转译的第三方依赖。

14.filenameHashing
默认情况下,生成的静态资源在它们的文件名中包含了 hash 以便更好的控制缓存。然而,这也要求 index 的 HTML 是被 Vue CLI 自动生成的。如果你无法使用 Vue CLI 生成的 index HTML,你可以通过将这个选项设为 false 来关闭文件名哈希。







您需要登录后才可以回帖 登录 | 注册
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。
学习中心
站长自定义文字内容,利用碎片时间,随时随地获取优质内容。
Q设计语言 了解更多
Q Design 提供商家设计所需的指导与资源,帮商家快速完成产品设计、降低生产成本。