Gulp 少吞咽+;自动刷新+;源地图挫折感
我的任务如下:Gulp 少吞咽+;自动刷新+;源地图挫折感,gulp,less,source-maps,autoprefixer,Gulp,Less,Source Maps,Autoprefixer,我的任务如下: var gulp = require('gulp'), plugins = require('gulp-load-plugins')({ camelize: true }); gulp.task('styles-compile', function() { return gulp.src(['less/site.less', 'less/special-*.less', 'less/editor-s
var gulp = require('gulp'),
plugins = require('gulp-load-plugins')({ camelize: true });
gulp.task('styles-compile', function() {
return gulp.src(['less/site.less',
'less/special-*.less',
'less/editor-styles.less'])
.pipe(plugins.sourcemaps.init())
.pipe(plugins.less())
.pipe(plugins.autoprefixer('last 15 versions', 'ie 8', 'ios 6', 'android 4'))
.pipe(plugins.sourcemaps.write('.', {sourceRoot: '../less', includeContent: false}))
.pipe(gulp.dest('css'))
});
我似乎无法配置它来让sourcemaps正常工作。
这是我得到的最接近工作版本的版本-唯一的问题是生成的sourcemap在其源列表中包含了它所用于的文件-例如site.css.map我得到:
{"version":3,"sources":["site.css","../font/icon/css/fontawesome.css","site.less"...,"names":[],"mappings":"...","file":"site.css","sourceRoot":"../less"}
首先,我相当确定目标文件本身(site.css)不需要出现在源代码列表中,但另一方面,它不出现在less
目录中,而是出现在css目录中。因此,当我在dev工具中加载它时,找不到它
如果我删除autoprefixer,一切都正常,所以我想我在这里看到的是,autoprefixer对源文件和目标文件都使用site.css
,因此它认为它们之间存在映射
根据其他地方的一些建议,我尝试在less()
和autoprefixer()
之间添加对sourcemaps.write()
的调用,但这并不能解决问题,事实上,在生成的CSS中添加了额外的sourceMappingURL注释
有没有一种公认的/更好的方法可以做到这一点
根据@seven phases max的评论,我对任务做了轻微的修改:
var gulp = require('gulp'),
plugins = require('gulp-load-plugins')({ camelize: true }),
autoprefixer = require('autoprefixer');
gulp.task('styles-compile', function() {
return gulp.src(['less/site.less',
'less/special-*.less',
'less/editor-styles.less'])
.pipe(plugins.sourcemaps.init())
.pipe(plugins.less())
.pipe(plugins.postcss([autoprefixer]))
.pipe(plugins.sourcemaps.write('.', {sourceRoot: '../less', includeContent: false}))
.pipe(gulp.dest('css'))
});
不幸的是,输出似乎完全相同,我仍然将site.css作为第一个源代码。在autoprefixer问题跟踪器上,他们建议您使用
gulp autoprefixer
再好不过了。相反,他们建议使用gulp postsss
,尽管我不知道它能为您的问题提供多大的改进。@最多七个阶段哦,好的,谢谢-您从哪里看到的?根据npm列表
,看起来autoprefixer已经在使用PostCs了,但我可以用其他方式直接使用它吗?gulp PostCs
是gulp autoprefixer
的替代品(例如,它不是关于autoprefixer
引擎本身,而是关于它的gulp
包装器)。除非我误解了如何设置它,否则这似乎没有帮助,不幸的是