Angular6+ webpack自定义扩展

Angular6+ webpack自定义扩展

背景

在项目开发过程当中,发现生产模式下console.log()日志文件依然存在,经过百度得出的结果是在生产模式下console.xx一系列方法所有重写webpack

window.console.log = ()=>{}

这种方法表示一看就不舒服,没法接受。因此想着想着@angular/cli
底层是webpack,并且代码压缩用的是UglifyJs,因此想着能不能扩展一配置项,让我把console所有给我过滤掉,最后去Issues上找了许久,发现angular6+不支持eject,最后有人推荐了一个工具库ngx-build-plus,不须要改不少东西就能在现有项目进行集成。接下来教你们如何使用,具体详情能够去github上找文档。git

如何使用

1.运行 ng add ngx-build-plus,在angular7版本会自动一键配置好,可是6版本中可能会出现安装不成功,这时候请直接npm install ngx-build-plus --save-dev,而后angular.json文件中更改如下两处地方:github

"build": {
      - "builder": "@angular-devkit/build-angular:browser"
      + "builder": "ngx-build-plus:build"
      ...
},
"serve": {
      - "builder": "@angular-devkit/build-angular:dev-server"
      + "builder": "ngx-build-plus:dev-server"
      ...
}

2.接下来根目录下新建webpack.extra.js文件web

const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
module.exports = {
    optimization: {
        minimizer: [new UglifyJsPlugin({
            uglifyOptions: {
                compress: {
                    drop_console: true
                }
            }
        })]
    }
};
记得```npm install uglifyjs-webpack-plugin --save-dev```

3.进行生产环境编译npm

ng build --extraWebpackConfig webpack.extra.js --prod

4.好了就这么简单。写的比较简陋,有问题能够留言,实在没弄懂我就弄个示例出来。json

相关文章
相关标签/搜索