首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在grunt-contrib-uglify中设置mangle:true时,本地变量名映射在开发工具中不起作用

在grunt-contrib-uglify中设置mangle:true时,本地变量名映射在开发工具中不起作用
EN

Stack Overflow用户
提问于 2015-04-18 22:29:45
回答 1查看 791关注 0票数 4

我正在使用grunt-contrib-uglify插件来压缩我的javascript源文件以用于生产。

当我尝试在chrome的dev-tools (或firefox)中调试函数时,出现了这个问题。

我在Gruntfile.js的uglify task config中设置了mangle:true (默认值),并在生成的代码中破坏(缩短并重命名)了变量名。

这些变量未正确映射到其原始局部变量名。所以调试是非常痛苦的。

有什么办法来解决这个问题吗?

下面是我的Gruntfile.js

代码语言:javascript
复制
/* 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"]);
};

我的目录结构基本上是,

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2015-12-03 06:58:34

这里也问了一个类似的问题:Breakpoint debugging minfied/mangled/compiled variables

今天我遇到了这个问题。这在Chrome和Firefox中似乎是一致的行为,这表明这是源码映射规范中的一个限制。

Chromium有一个开放的问题:https://code.google.com/p/chromium/issues/detail?id=327092建议需要更新源代码映射规范来适应这一点。

如果您在精简代码时使用名称损坏,或者代码被转译(例如,编写通过Babel传递的ES2015 ),则会出现此问题。似乎目前的解决方案是等待源映射更新来处理这种转换。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29718639

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档