Javascript 保存';调试器';关键词咕哝丑陋

Javascript 保存';调试器';关键词咕哝丑陋,javascript,grunt-contrib-uglify,Javascript,Grunt Contrib Uglify,我正在用JS开发一个库,我想在使用grunt contrib uglify后保留'debugger'关键字,因为这是有意使用的,但默认行为(显然)是删除所有调试器 我的grunt文件: module.exports = function (grunt) { grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), uglify: { CrackerTrapProduct

我正在用JS开发一个库,我想在使用grunt contrib uglify后保留'debugger'关键字,因为这是有意使用的,但默认行为(显然)是删除所有调试器

我的grunt文件:

module.exports = function (grunt) {
    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        uglify: {
            CrackerTrapProductionMinJS: {
                options:{
                    banner: '/*! <%= pkg.name %> - v<%= pkg.version %> - ' +
            '<%= grunt.template.today("yyyy-mm-dd") %> */\n',
                drop_console: true,
                mangle: {
                    reserved: ['debugger']
                  }
                },
                files: {
                    './build/cracker-trap.min.js': './build/cracker-trap.ob.js'
                }
            }
        },          
    });

    grunt.loadNpmTasks('grunt-contrib-uglify');

    grunt.registerTask('default', ['uglify']);
};

完成:

中的代码看起来您只需在
grunt contrib uglify
设置部分中指定选项对象,并将
drop\u debugger
设置为false,如图所示

因此,您的设置应该如下所示:

uglify: {
    CrackerTrapProductionMinJS: {
        options:{
            banner: '/*! <%= pkg.name %> - v<%= pkg.version %> - ' +
    '<%= grunt.template.today("yyyy-mm-dd") %> */\n',
        drop_console: true,
        compress: {
          drop_debugger: false
        },
        files: {
            './build/cracker-trap.min.js': './build/cracker-trap.ob.js'
        }
    }
}
uglify:{
CrackerTrapProductionMinJS:{
选项:{
横幅:'/*!-v-'+
“*/\n”,
drop_控制台:正确,
压缩:{
drop\u调试器:false
},
档案:{
“./build/cracker trap.min.js”:“./build/cracker trap.ob.js”
}
}
}

虽然我没有运行gulp,但我无法验证

我不确定这是否适用于您的设置,但在开发模式下,您不应该使用uglify。创建一个单独的开发配置文件,以完全不缩小代码,并且只在中使用uglifyproduction@AndyRay你意识到OP希望它留在prod吗?@CamiRodriguez我更新了我的帖子d将压缩移到
mangle
对象之外,我想我误读了文档,就uglifyjs而言,这就是他们文档上的内容。可以保留特定的调试器语句,删除所有其他语句,类似于使用@preserve?@Jools保留特定注释的方式。我不知道,我可能是错的,也许是rai在?谢谢!
选项上出现问题:{banner://*some comment*/\n],压缩:{drop\u debugger:false},},
uglify: {
    CrackerTrapProductionMinJS: {
        options:{
            banner: '/*! <%= pkg.name %> - v<%= pkg.version %> - ' +
    '<%= grunt.template.today("yyyy-mm-dd") %> */\n',
        drop_console: true,
        compress: {
          drop_debugger: false
        },
        files: {
            './build/cracker-trap.min.js': './build/cracker-trap.ob.js'
        }
    }
}