保留 'debugger' 关键字 grunt uglify
Preserve 'debugger' keyword grunt uglify
我正在用 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']);
};
以及我想保留 debugger 关键字以验证用户是否打开了开发者工具的方法:
function timeValidation() {
var startTime = new Date();
debugger;
var endTime = new Date();
return endTime - startTime > 100;
}
看来您只需指定 compress
options object inside your grunt-contrib-uglify
setup section, and set drop_debugger
to false as is shown here
所以你的设置应该是这样的:
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'
}
}
}
}
虽然我没有gulp运行所以我无法验证
我正在用 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']);
};
以及我想保留 debugger 关键字以验证用户是否打开了开发者工具的方法:
function timeValidation() {
var startTime = new Date();
debugger;
var endTime = new Date();
return endTime - startTime > 100;
}
看来您只需指定 compress
options object inside your grunt-contrib-uglify
setup section, and set drop_debugger
to false as is shown here
所以你的设置应该是这样的:
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'
}
}
}
}
虽然我没有gulp运行所以我无法验证