15

これで成功した人はいますか?

4

4 に答える 4

13

多かれ少なかれ未解決の問題だと思います: 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 でもサポートされる予定です。

于 2013-04-13T16:12:00.007 に答える
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'))
});

同じアプローチは、他の状況でも機能します。私の場合、これが機能した唯一のアプローチです。

于 2014-09-04T23:33:37.670 に答える
1

これを完璧に行う面倒なタスクを作成しました。見てみな

于 2013-08-10T12:56:26.253 に答える