我有以下用于捆绑 javascript 的 gulp 任务:
gulp.task('js', function () {
return gulp.src(paths.js)
.pipe(sourcemaps.init())
.pipe(uglify())
.pipe(concat('bundle.min.js'))
.pipe(sourcemaps.write('./'))
.pipe(gulp.dest('dist'));
});
当我在 Chrome 开发工具中运行它时,会找到源映射并且断点起作用,但变量无法调试.
以这个角度代码块为例:
iarApp.config(['$animateProvider', function ($animateProvider) {
$animateProvider.classNameFilter(/angular-animate/);
}]);
如果我添加一个断点来查看值$animateProvider
,我得到以下信息:
但是如果我在 Uglify 中关闭变量修饰:
.pipe(uglify({ mangle: false }))
然后它就起作用了:
因此,在 Uglify 破坏名称后,gulp-sourcemaps 插件似乎无法跟踪变量。
其他人可以遇到同样的问题和/或知道解决方案吗?
事实证明,目前这是不可能的,因为这不是源映射规范的一部分。
有some https://github.com/fitzgen/source-map-rfc/blob/scopes-and-bindings/proposals/env.md 提案 https://groups.google.com/forum/#!topic/mozilla.dev.js-sourcemap/BT032gzqhZI to add https://gist.github.com/asterland/edf028ed7947c8c258d1这个功能,所以我们必须等到规范和实现更新。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)