webpack

tree shaking

  • 使用es6的inport和export
  • 在项目package.json文件中,添加一个“sideEffects”入口: 向webpack的compiler提供提示那些代码是"纯粹部分",如果所有代码都不包含副作用(副作用:在导入时会执行特殊行为的代码,而不是仅仅暴露一个或多个export,比如css文件),我们可以简单的标记为false,这样webpack就知道它删除任何未使用的export导出都是安全的。如果确实有代码是有副作用的,可以把这些文件以数组的形式罗列:["./src/effectful-file.js", “*.css”]。 我们还可以在module.rules中配置sideEffects
module.rules: [
  {
    include: path.resolve("node_modules", "lodash"),
    sideEffects: false
  }
] 
  • 引入一个能够删除未引用代码的压缩工具,如UglifyJSPlugin:
    • 可以用-p这个webpack编译标记来启用uglifyjs插件
    • webpack4后也可以在webpack.config.js中配置"mode": “production”
    • –optimize-minimize编译标记也可以

tips

css去重: 使用plugins:optimize-css-assets-webpack-plugin

const OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin');

 			new OptimizeCssAssetsPlugin({
                assetNameRegExp: /\.css$/g,
                cssProcessor: require('cssnano'),
                cssProcessorPluginOptions: {
                    preset: [ 'default', { discardComments: { removeAll: true } }]
                },
                canPrint: true
            })
 

发布报错:

因为用nextjs 所以是在next.config.js里边new webpack配置的,因此require时如果是dev依赖,只写在webpack里面,不然打包没问题,上线会报错。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值