前端压缩打包,能不能把console之类的去掉,找了答案,但是不行啊?

能打包但是console.log去不掉

gulp.task("agency:build", ["agency:cache-templates"], function (cb) {
    agencySource.js.src.push(agencySource.build.cache + "/app.js");
    pump(
        [
            gulp
                .src(agencySource.js.src)
                .pipe(envify({ NODE_ENV: 'production' }))
                .pipe(stripDebug())
                .pipe(ngAnnotate())
                .pipe(babel())
                .pipe(concat("app.js")),
                
                //process.env.NODE_ENV
            uglify({ drop_console: true}),
            gulp.dest(agencySource.build.cache)
            // .pipe(concat('app.js'))
            // .pipe(gulp.dest(agencySource.build.cache))
        ],
        cb
    );
});

找到了一部分答案,但是效果不完全,只能去掉一部分console

uglify({
  compress: {
    warnings: false,
    drop_console: true,  // 过滤 console
    drop_debugger: true  // 过滤 debugger
  }
})
用了之后console.log从1200多个变成了800多个~~~~
再用
`window.console.log = function() {}`屏蔽多余的console

希望还能优化一,怎么吧多余的console去掉

求大佬们来拯救一波~!!!谢谢

阅读 5.5k
5 个回答

完美解决

var es = require("event-stream");
var gulp = require("gulp");
var pump = require("pump");
var babel = require("gulp-babel");
var ngAnnotate = require("gulp-ng-annotate");

gulp.task("agency:prodjs", function (cb) {
    pump(
        [ es
        .merge(gulp.src(agencySource.js.src))
            .pipe(ngAnnotate())
            .pipe(babel())
        .pipe(concat("app.js")),
        uglify({
                compress: {
                    warnings: false,
                    drop_console: true, // 过滤 console
                    drop_debugger: true // 过滤 debugger
                }
            }),
            gulp.dest(agencySource.build.cache)
        ],
        cb
    );
});

没记错的话,drop_consolecompress 里,你这样用当然去不掉。

建议仔细阅读文档。

webpack.prod.conf.js文件里

new webpack.optimize.UglifyJsPlugin({
      compress: {
        warnings: false,
        /*不显示控制台打印信息*/
        drop_debugger: true,
        drop_console: true,
        pure_funcs: ['console.log']
      },
      sourceMap: false
    })

你用的是 gulp,安装 gulp-uglify 插件;

uglify({
  compress: {
    warnings: false,
    drop_console: true,  // 过滤 console
    drop_debugger: true  // 过滤 debugger
  }
})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题