有没有人对此有任何成功?
答案 0 :(得分:13)
我认为这或多或少是一个未解决的问题: https://github.com/jashkenas/coffee-script/issues/2779。最后一个吝啬的评论来自一个月前的jwalton。
尽管如此,增加对它的支持似乎并不是火箭科学,所以它很快就会到来。
Michael Ficarra(CoffeeScript Redux的创建者)建议使用https://github.com/michaelficarra/commonjs-everywhere。
两个警告:
所以这对你要求的具体内容不起作用,“连接”。
您可能会对这些内容感到满意:combine-source-map和/或generate-sourcemap,两者都是同一作者。
这看起来非常简单:https://npmjs.org/package/mapcat。您只需要将咖啡编译器生成的各个源映射文件提供给它。
Mariusz Nowak刚刚发布webmake-coffee。与CommonJS Everywhere一样,它需要将代码组织为CommonJS模块。与CommonJS无处不同,它使用常规的CoffeeScript。
似乎Grunt Coffee-Script plugin已经有很长一段时间(两个月)对连接文件提供了源地图支持,有效地证明了我的原始答案是错误的。
即将推出的Snockets 2.0版也将支持它。
答案 1 :(得分:2)
我最终使用coffeeify作为转换选项使用browserify,并启用了browserify的调试选项。我在我的main.js文件的每个请求上捆绑了应用程序,并且任何运行时错误都显示在我的原始源代码中,具有相当不错的准确性。
当然用我的眼球将连接/编译的js中的运行时错误映射回咖啡源!
答案 2 :(得分:2)
我需要在缩小之前注释AngularJS代码,但是grunt-ng-annotate
不接受输入源映射,因此我将无法使用CoffeeScript编译器生成的映射。
显然,使用gulp-sourcemaps这不是问题:
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'))
});
同样的方法也适用于其他情况。就我而言,这是唯一有效的方法。
答案 3 :(得分:1)
我写了一个笨拙的任务,完美无缺。 Check it out