我正在使用 grunt-contrib-uglify 插件来压缩我的 javascript 源文件以进行生产。
当我尝试在 chrome 的开发工具(或 firefox 的)中调试函数时,就会出现问题。
我在 Gruntfile.js 的 uglify 任务配置中设置了 mangle:true (默认值),并且 uglifyjs 对生成的代码中的变量名进行了 mangles(缩短和重命名)。
这些变量没有正确映射到它们原来的局部变量名。所以调试很痛苦。
有什么想法可以解决这个问题吗?
下面是我的 Gruntfile.js
/* global module */
module.exports = function (grunt) {
grunt.initConfig({
copy: {
production: {
files: [
{
expand: true,
cwd: "./development/js/",
src: "./*",
dest: "./production/js/debug/"
}
]
}
},
uglify: {
production: {
options: {
sourceMap: true
/* mangle: false */
},
files: {
"./production/js/one.min.js": ["./development/js/one.js"],
"./production/js/two.min.js": ["./development/js/two.js"]
//"./production/js/app.js": ["./development/js/one.js" , "./development/js/two.js" ]
}
}
}
});
// [STEP] Load required GRUNT plugins
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-contrib-uglify');
// [STEP] Register tasks
grunt.registerTask("default", ["copy:production", "uglify:production"]);
};
我的目录结构基本上是,
Project ROOT dir
--F-- package.json
--F-- Gruntfile.json
--D-- node_modules
--*---- * (module files folders)
--D-- development
--D---- js
--F------ one.js
--F------ two.js
--D-- production
--D---- js (generated from grunt)
--*------ * (generated files)
--D------ debug (generated from grunt)
--*-------- * (generated files)
--F---- index.html