中時,局部變量名稱映射在開發工具中不起作用我正在使用grunt-contrib-uglify插件來壓縮用於生產的javascript源文件。當mangle:true設置在grunt-contrib-uglify
當我嘗試在chrome的dev-tools(或firefox's)中調試一個函數時,就會出現這個問題。
我在uglify任務配置中設置了mangle:true(默認值)Gruntfile.js和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
你可以嘗試調試你的代碼,當它沒有縮小,並在一切都ok了之後minify。 – jcubic
@jcubic我需要通過源代碼映射調試縮小生產代碼。在製作中只會使用縮小的文件。源代碼僅在調試目錄中,僅用於調試目的。 – Dreamer