Open lizj-core opened 5 years ago
使用autoprefixer插件,如css3的:display: flex; 与postcss-loader一起使用 安装: npm i postcss-loader autoprefixer -D
webpack.prod.js:
{
test: /\.less$/,
use: [
MiniCssExtractPlugin.loader,
"css-loader",
"less-loader",
{
loader: 'postcss-loader',
options: {
plugins: () => [
require('autoprefixer')({
browsers: ['last 2 version', '>1%', 'ios 7']
})
]
}
}
]
},
以前:css媒体查询实现响应式布局 缺陷: 需要写多套适配样式的代码 现在: rem和px的对比: rem是相对单位 px是绝对单位 使用px2rem-loader 页面渲染时计算根元素的font-size值 安装: npm i px2rem-loader -D
webpack.prod.js
{
loader: 'px2rem-loader',
options: {
remUnit: 75,
remPrecision: 8
}
}
到node_module找到:lib-flexible,将代码引入到index.html里面,就能实时计算, 下面实现在webpack做资源的内联
利用SplitChunksPlugin 进行公共脚本分离 webpack4内置的,替代CommonsChunkPlugin插件
chunks参数说明: async: 异步引入的库进行分离(默认) initial: 同步引入的库进行分离 all: 所有引入的库进行分离(推荐)
module.exports = {
optimization: {
splitChunks: {
minSize: 0,
cacheGroups: {
commons: {
test: /(react|react-dom)/,
name: 'vendors',
chunks:'all'
}
}
}
}
}
new HtmlWebpachPlugin({
template: path.join(__dirname, 'src/index.html'), // html模板所在位置
filename: 'index.html', // 指定打包出来的html文件名称
chunks: ['vendors', 'main'], // 指定html要使用哪些chunk
// inject: true,
// minify: {
// html5: true,
// collapseWhitespace: true,
// preserveLineBreaks: false,
// minifyCSS: true,
// minifyJS: true,
// removeComments: false,
// }
}),
Friendly-errors-webpack-plugin识别某些类别的webpack错误,并清理,聚合和优先级,以提供更好的开发人员体验。 npm install friendly-errors-webpack-plugin --save-dev
const FriendlyErrorsWebpackPlugin = require('friendly-errors-webpack-plugin') plugins: [ new FriendlyErrorsWebpackPlugin() ]
当前构建时的问题:每次构建的时候不会清理目录,造成构建的输出目录output文件越来越多
可以通过npm scripts清理构建目录:
webpack.prod.js与webpack.dev.js: