为从Coffeescript编译的多个连接javascript文件生成源映射
有人在这方面取得过成功吗?我认为这或多或少是一个尚未解决的问题: . 最后一个有意义的评论是一个月前来自jwalton的 尽管如此,似乎火箭科学并没有为它增加支持,所以它可能很快就会到来 MichaelFicarra(CoffeescriptRedux的创建者)建议使用 两个警告:为从Coffeescript编译的多个连接javascript文件生成源映射,javascript,compiler-construction,coffeescript,source-maps,Javascript,Compiler Construction,Coffeescript,Source Maps,有人在这方面取得过成功吗?我认为这或多或少是一个尚未解决的问题: . 最后一个有意义的评论是一个月前来自jwalton的 尽管如此,似乎火箭科学并没有为它增加支持,所以它可能很快就会到来 MichaelFicarra(CoffeescriptRedux的创建者)建议使用 两个警告: 它只适用于绑定CommonJS模块 它使用的是CoffeeScript Redux,它仍处于测试阶段(尽管它似乎工作得很好),并且与原始的CoffeeScript编译器不完全兼容 因此,这不适用于您特别要求的“串
- 它只适用于绑定CommonJS模块
- 它使用的是CoffeeScript Redux,它仍处于测试阶段(尽管它似乎工作得很好),并且与原始的CoffeeScript编译器不完全兼容李>
即将发布的Snockets 2.0版也将支持它 我最终使用了browserify,使用coffeeify作为转换选项,并启用了browserify的调试选项。每次请求main.js文件时,我都会将应用程序捆绑起来,任何运行时错误都会以相当高的精度显示在我的原始源代码中
当然比用我的眼球将连接/编译的js中的运行时错误映射回coffee源代码要好 我写了一个可以完美完成这一任务的咕噜任务 我需要在缩小之前对AngularJS代码进行注释,但是
grunt ng annotate
不接受输入源映射,因此我无法使用CoffeeScript编译器生成的映射
显然,这不是一个问题:
var gulp = require('gulp');
var $ = require('gulp-load-plugins')(); // loading gulp plugins lazily
// remember to include them in the package.json
gulp.task('appJS', function() {
// concatenate compiled .coffee files and js files into build/app.js
gulp.src(['./app/**/*.js','./app/**/*.coffee'])
.pipe($.sourcemaps.init())
.pipe($['if'](/[.]coffee$/, $.coffee({bare: true}).on('error', $.util.log)))
.pipe($.concat('app.js'))
.pipe($.ngAnnotate())
.pipe($.uglify())
.pipe($.sourcemaps.write())
.pipe(gulp.dest('./build'))
});
同样的方法也适用于其他情况。就我而言,这是唯一有效的方法。感谢Meryn提供的参考资料
grunt contrib coffee
创建一个连接的coffee文件,然后使用源映射对其进行编译。一个更好的选择是运行grunt-contrib-coffee
,然后运行grunt-mapcat
。这将构建一个指向每个单独咖啡文件的源映射。