1

これは少し奇妙なものです:

次のようなgulpタスクがあります。

gulp.task('less', function () {
  gulp.src('./less/main.less')
    .pipe(sourcemaps.init())
    .pipe(less({
      plugins: [cleancss]
    }))
    .pipe(sourcemaps.write()) // will write the source maps to ./public/assets/css-dist/maps
    .pipe(gulp.dest(paths.public + 'css/dist'));
});

play 1.3 プロジェクト内からこのタスクを実行しています。予想どおり、base64 でエンコードされたインライン ソースマップが生成されますが、それをクロムにロードすると、すべてのスタイルが の 1 行目にマッピングされmain.css、何かが違う。

さて、ここが奇妙になります。同じディレクトリ構造を持つ別のプロジェクトで、同じファイルのコピーを指定してこの同じタスクを実行すると、単純な apache で実行されているだけで、期待どおりに動作します。出力ファイルはまったく同じように表示されます。

これがなぜなのか、誰かが洞察を持っていますか?

FWIW、非常によく似たシナリオが、js を縮小して連結するときに発生しますgulp-uglifygulp-concat

4

1 に答える 1

0

このビジュアライザー ツールを使用して、違い/マッピングを視覚化できるかどうかを確認してください。コンパイルされた両方のファイルが2つのプロジェクト間でまったく同じである場合、ファイルを提供/アクセスする方法が異なることが原因である可能性がありますか? 2 番目のプロジェクトでは、Chrome 経由でソースマップも表示しようとしましたか?

明確にするために、インラインソースマップを書いているだけでなく、ソースも埋め込んでいるので、すべてがコンパイルされた .css ファイル内にあり、外部の元のソースファイルは参照されたソースではありません ( /source/sourceRootになります)。

于 2015-02-06T13:02:11.557 に答える