Webpack配置学习
1.多入口文件
自动配置多入口的函数
1 | function getEntry(src){ |
1.webpack配置
2.一文搞懂 Webpack 多入口配置
3.webpack多入口文件页面打包配置 (自动和手动配置多入口,这里还提到了一个叫glob的库)
4.Node.js path模块,获取文件后缀名
5.Node.js使用递归实现遍历文件夹中所有文件
6.Nodejs基础:路径处理模块path总结 (获取文件名及后缀,以及路径组合等技巧)
2.mini-css-extract-plugin
使用mini-css插件的时候,出现了错误:document is not defined,主要原因是因为mini-css和style-loader冲突,去掉style-loader模块即可。
1 | module: { |
1.使用mini-css-extract-plugin 报错ReferenceError: window is not defined (非常有用)
2.使用mini-css-extract-plugin服务端报错document is not defined (没有用)
3.mini-css-extract-plugin with SSR
3.打包图片和字体到指定目录
1 | module: { |
1.webpack之输出路径处理
4.js压缩
在webpack4中使用uglifyjs-webpack-plugin,需要在mode为production时才起作用,当我在development模式下,进行压缩的时候,注释什么的都还是在的。
1 | optimization: { |
但是在production模式下,出现了打包错误的问题(解决方法查看下面的问题章节)
1.uglifyjs-webpack-plugin (官方文档)
2.Webpack4+Babel7优化70%速度 (这个有使用babel7和uglifyjs进行转码和压缩的方法)
3.注释压缩去掉不了
4.UglifyJS Webpack Plugin
5.webpack4代码压缩基本方法 (有css压缩和js压缩)
问题
(1) Unexpected token: name «i», expected: punc «;»
在使用webpack4对js代码进行压缩的时候,出现了上面的问题,怀疑可能时因为uglifyjs不支持es6模块,解决方法就是使用terser-webpack-plugin插件代替uglifyjs-webpack-plugin插件。
1 | const TerserPlugin = require('terser-webpack-plugin'); |
1.Cannot fix “Unexpected token name «i», expected punc «;»” from UglifyJs
2.terser-webpack-plugin (官方给出的仓库)
3.How to minify ES6 code using Webpack? (这里说,是因为可能不支持es6模块)
4.babel/minify (babel压缩方法)
5.在webpack用插件uglifyjs-webpack-plugin压缩ES6语法
6.webpack - babel配置 (webpack如何配置babel)
5.webpack4.x下babel的安装、配置及使用 (这个其实更加的清楚一些,只是写了webpack4.x和babel6.x的配置)
6.从零开始基于Vue的Webpack4及babel7配置 (上面写了babel7但是我觉得不是babel7,babel提供了babel.config.json配置文件,这里没写,还是用的.babelrc.json,我查了下管网,好像两者都是支持的。)
7.Configuration File Types