5

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 開発ツールでこれを実行すると、ソースマップが見つかり、ブレークポイントが機能しますが、変数をデバッグできません

次のAngularコードのチャンクの例を見てください:

iarApp.config(['$animateProvider', function ($animateProvider) {
    $animateProvider.classNameFilter(/angular-animate/);
}]);

の値を確認するためにブレークポイントを追加すると$animateProvider、次のようになります。

ここに画像の説明を入力

しかし、Uglify で変数マングリングをオフにすると、次のようになります。

.pipe(uglify({ mangle: false }))

それは動作します:

ここに画像の説明を入力

そのため、Uglify が名前をマングルした後、gulp-sourcemaps プラグインは変数を追跡できないようです。

他の誰かが同じ問題を抱えたり、解決策を知ったりできますか?

4

1 に答える 1

3

これはソース マップの仕様の一部ではないため、現時点では不可能であることが判明しました。

この機能を追加する提案いくつかある ため、仕様と実装が更新されるまで待つ必要があります。

于 2016-01-19T09:00:28.817 に答える