これで成功した人はいますか?
4 に答える
多かれ少なかれ未解決の問題だと思います: https://github.com/jashkenas/coffee-script/issues/2779。最後の意味のあるコメントは、1 か月前の jwalton からのものでした。
それでも、サポートを追加するのはロケット科学ではないように思われるので、おそらくすぐに来るでしょう.
Michael Ficarra (CoffeeScript Redux の作成者) は、https://github.com/michaelficarra/commonjs-everywhereの使用を提案しました。
2 つの注意事項:
- CommonJS モジュールをバンドルする場合にのみ機能します。
- まだベータ版の CoffeeScript Redux を使用しており (かなりうまく機能しているように見えます)、元の CoffeeScript コンパイラと 100% の互換性はありません。
したがって、これは、特に「連結」を求めるものには機能しません。
4月14日追記
これらで運が良いかもしれません:両方とも同じ作成者による、結合ソースマップ および/または生成ソースマップ。
4月26日追記
これは非常に単純に見えます: https://npmjs.org/package/mapcat。コーヒー コンパイラによって生成された個々のソース マップ ファイルをフィードするだけです。
5月16日追記
Mariusz Nowakはwebmake-coffeeをリリースしました。CommonJS Everywhere と同様に、コードを CommonJS モジュールとして編成する必要があります。どこでも CommonJS とは異なり、通常の CoffeeScript を使用します。
また、Grunt Coffee-Script プラグインは、かなり長い間 (2 か月間) 連結ファイルのソース マップをサポートしていたようで、私の元の回答が正しくないことを効果的に証明しています。
Snockets の今後のバージョン 2.0 でもサポートされる予定です。
縮小する前に 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'))
});
同じアプローチは、他の状況でも機能します。私の場合、これが機能した唯一のアプローチです。
これを完璧に行う面倒なタスクを作成しました。見てみな