這個週末我開始玩弄吞噬。我想成立一個任務,可以gulp-sass autoprefix源地圖
- 編譯我頂嘴文件
- 繼續工作,如果我在SASS文件犯錯誤
- 與青菜引導工作
- 產生sourcemaps
- 附加瀏覽器前綴
- 注入已編譯的css wihtout瀏覽器重新加載
- 快(1-2 S IN開發ENV頂部)
我得到了大部分的步驟,但瀏覽器的前綴給了我一個困難時期 這是我走到這一步,
var browserSync = require('browser-sync');
var reload = browserSync.reload;
var filter = require('gulp-filter');
var gulp = require('gulp');
var sass = require('gulp-sass');
var autoprefixer = require('gulp-autoprefixer');
var notify = require("gulp-notify");
var sourcemaps = require('gulp-sourcemaps');
var concat = require('gulp-concat');
var config = {
sassPath: './sass',
bower: './bower_components',
bootstrap: './bower_components/bootstrap-sass-official/assets/stylesheets',
fonts: './bower_components/bootstrap-sass-official/assets/fonts'
};
gulp.task('sass', function() {
return gulp.src(config.sassPath + '/**/*.scss')
.pipe(sourcemaps.init())
.pipe(sass({
//outputStyle: 'compressed',
outputStyle: 'nested',
precision: 10,
includePaths: [
config.sassPath,
config.bower,
config.bootstrap
],
onError: function (err) {
notify().write(err);
}
}))
.pipe(concat('app.css'))
.pipe(autoprefixer('last 2 version'))
.pipe(sourcemaps.write())
.pipe(gulp.dest('css'))
.pipe(filter('**/*.css')) // Filtering stream to only css files
.pipe(browserSync.reload({stream:true}));
});
gulp.task('browser-sync', function() {
browserSync({
logLevel: "info",
server: {
baseDir: './',
//directory: true,
routes: {
"/fonts": config.fonts
}
}
});
});
gulp.task('default', ['sass', 'browser-sync'], function() {
gulp.watch(['./**/*.html', 'js/**/*.js'], reload);
gulp.watch('sass/*.scss',['sass']);
});
問題是autoprefixer給我一個錯誤,並弄亂了源地圖
我得到的錯誤:「gulp-sourcemap-write:未找到源文件:C:\ WEB \ skilldrill_v1 \ skilldrill \ sass \ app.css」
因此,由於某種原因,它試圖找到的CSS文件在sass目錄
[編輯]
我設法找到問題,但還不能解決它。 管這個事情的作品:吞掉-autoprefixer - >做一些東西 - >前綴的任務 - >乙烯基sourcemaps申請
在一飲而盡,autoprefixer \ index.js的第35行:applySourceMap(文件,res.map的ToString()); 從這個角度來看,vinyl-sourmaps-apply會理解當前文件(在我的情況下是app.css)也會成爲源文件。
這裏有問題: 一)認爲CSS文件是在gulp.src規定(),它通常是不正確的 二)它不與添加的行只能工作在同一文件夾autoprefixer,但增加了對每一行的參考
你有任何想法基於這些信息?我開始挖掘吞噬連接,正確處理類似的問題。
我想我和你的源代碼和gulp-autoprefixer有類似的問題。我也嘗試了一種解決方法,兩次運行源地圖。我最近發現使用CSSNext的PostCSS似乎解決了這個問題。看看[這裏](https://stackoverflow.com/questions/40937659/gulp-sass-sourcemap-sources-are-incorrect),看看解決方案是否對你有用。 – freeMagee 2017-03-08 09:29:10