Vue-webpack打包配置那些事

555 阅读2分钟

这是我参与8月更文挑战的第6天,活动详情查看:8月更文挑战

webpack打包有很多属性,一般都是用的默认配置,在出现问题时候,才会去查阅文档,配置属性,总结一下,温故而知新

webpack打包优化

  1. 先去掉默认生产的以map结尾的js文件,这个js文件差不多占了js文件夹一半的容量,所以没必要用到。位置config/index.js 设置 productionSourceMap: false
productionSourceMap: false,
  1. 使用webpack提供的gizp压缩工具 config/index.js中找到productionGzip,把默认的false改成true,不过在修改之前我们要先去下载compression-webpack-plugin直接在该项目中执行npm install --save-dev compression-webpack-plugin即可
productionGzip: true,
  1. jQuery、echarts、elementUI、axios之类的,都有cdn链接,使用cdn在index.html引用,也可以下载静态资源在index.html引入
// 1、webpack.base.conf.js添加externals
externals: {
  'vue': 'Vue',
  'element-ui': 'ElementUI',  // 或者 ELEMENT
}

// 2、main.js 注释掉element-ui
import Vue from 'vue'
// import ElementUI from 'element-ui'
// import 'element-ui/lib/theme-chalk/index.css'
// Vue.use(ElementUI)


// 3、index.html需要先引入vue,再引入elementui
<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css"/>
<script src="https://cdn.bootcss.com/vue/2.5.2/vue.min.js"></script>
<script src="https://cdn.bootcss.com/element-ui/2.4.11/index.js"></script>

config.js属性大全

1.publicPath

  • Type: string
  • Default: '/'
  • 部署应用包时的基本 URL,
  • 用法和 webpack 本身的 output.publicPath 一致。
  • 这个值也可以被设置为空字符串 ('') 或是相对路径 ('./'),这样所有的资源都会被链接为相对路径,这样打出来的包可以被部署在任意路径。

2.outputDir

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

3.assetsDir

  • Type: string
  • Default: ''
  • 放置生成的静态资源 (js、css、img、fonts) 的目录。

4.indexPath

  • Type: string
  • Default: 'index.html'
  • 指定生成的 index.html 的输出路径 (相对于 outputDir)。也可以是一个绝对路径。

5.filenameHashing

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

6.lintOnSave

  • Type: boolean | 'error'
  • Default: true
  • 是否在保存的时候使用 eslint-loader 进行检查。 有效的值:ture | false | "error" 当设置为 "error" 时,检查出的错误会触发编译失败。

7.productionSourceMap

  • Type: boolean
  • Default: true
  • 如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建。

具体的其他设置见下图

1.png

2.png

3.png

以上就是config的一些配置了,记录一下,温故而知新!