問題
gulp-sourcemaps
コンパイル済みの sass のソースマップを生成するために使用しています。
これは、Linux/Mac コンピューターでは機能するようですが、Windows では機能しません。実際のソース sass の代わりに、ソースマップの内容は生成された css と同じです。
PS私は実際のソースファイルを公開してリンクしたくありません。それらをソアマップに埋め込んでほしい。
詳細
私が使用している完全なgulpタスクは次のとおりです。
var autoprefixer = require('gulp-autoprefixer');
var gulp = require('gulp');
var rename = require('gulp-rename');
var sass = require('gulp-sass');
var sourcemaps = require('gulp-sourcemaps');
gulp.task('css', function () {
gulp.src('resources/assets/sass/app.scss')
.pipe(sourcemaps.init())
.pipe(sass({ outputStyle: 'compressed' }))
.pipe(autoprefixer())
.pipe(rename('css/app.css'))
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest('public'));
});
そして、フォルダ構造は次のとおりです。
├── gulpfile.js
|
├── resources
| ├── assets
| ├── sass
| ├── app.scss
|
├── public
| ├── css
| ├── app.css
| ├── app.css.map
さらに詳しく
Node v0.12.4 で Windows 7 を実行しています。グローバルgulp
バージョンは 3.9.0 です。
これが私のpackage.json
ファイルです:
{
"private": true,
"devDependencies": {
"gulp-autoprefixer": "^2.3.1",
"gulp": "^3.9.0",
"gulp-rename": "^1.2.2",
"gulp-sass": "^2.0.1",
"gulp-sourcemaps": "^1.5.2"
}
}
の元のソース コンテンツは次のapp.scss
とおりです。
.div {
color: red;
.div {
color: blue;
}
}
生成された CSS ファイルは次のとおりです。
.div{color:red}.div .div{color:blue}
/*# sourceMappingURL=../css/app.css.map */
最後に、ソースマップ ファイル (整形済み) を次に示します。
{
"version":3,
"sources":["app.css"],
"names":[],
"mappings":"AAAA,KAAK,SAAS,CAAC,UAAU,UAAU,CAAC",
"file":"css/app.css",
"sourcesContent":[".div{color:red}.div .div{color:blue}\n"],
"sourceRoot":"/source/"
}
結論
上記のすべてからわかるようにsourcesContent
、ソースマップ ファイル内の は、生成された CSS とまったく同じです。これにより、ソースマップはかなり役に立たなくなります。
ここで何が間違っていますか?どうすれば修正できますか?
これらのファイルのダウンロードは次のとおりです: gulp-sass-autoprefixer-sourcemaps.zip。
テストするには: 抽出してから実行しnpm install && gulp css
ます。