我在我的gulpfile.js中对此进行了分析:
gulp.task('buildStyles', function() {
return gulp.src([
'./styles/less/main.less',
'./styles/less/widgets/widgets.less',
'./styles/less/pages/pages.less',
'./styles/less/themes/default.less',
'./styles/less/rtl/rtl.less'
])
.pipe(plumber())
.pipe(sourcemaps.init())
.pipe(less())
.pipe(concat('allmin.css'))
.pipe(sourcemaps.write('./maps'))
.pipe(gulp.dest('./dest'));
});
但我总是收到如下信息:
$ gulp buildStyles
[18:46:31] Using gulpfile /Library/WebServer/Documents/qjt2015/trunk/gulpfile.js
[18:46:31] Starting 'buildStyles'...
gulp-sourcemap-write: source file not found:/Library/WebServer/Documents/qjt2015/trunk/styles/less/support-tickets.less
gulp-sourcemap-write: source file not found:/Library/WebServer/Documents/qjt2015/trunk/styles/less/comments.less
gulp-sourcemap-write: source file not found:/Library/WebServer/Documents/qjt2015/trunk/styles/less/article-comments.less
gulp-sourcemap-write: source file not found:/Library/WebServer/Documents/qjt2015/trunk/styles/less/threads.less
gulp-sourcemap-write: source file not found:/Library/WebServer/Documents/qjt2015/trunk/styles/less/chat.less
我在所有较少的文件中使用@imports,并且引用是在消息中看不到的引用。例如,我的widgets.less文件如下:
// ### Bootstrap's variables andmixins
@import "../../../bower_components/bootstrap/less/variables.less";
@import "../../../bower_components/bootstrap/less/mixins.less";
@import '../variables.less';
@import '../mixins.less';
@import './support-tickets.less';
@import './comments.less';
@import './article-comments.less';
@import './threads.less';
@import './chat.less';
我错过了什么吗? 提前,谢谢你的帮助!
答案 0 :(得分:4)
你只需要为gulp-less指定paths
选项,告诉它应该从哪里开始搜索用@import指令指定的文件。
例如,在widgets.less
中,它试图找到
support-tickets.less
comments.less
article-comments.less
等。
Library/WebServer/Documents/qjt2015/trunk/styles/less/
中的(请参阅您发布的错误消息),但我认为它应该在Library/WebServer/Documents/qjt2015/trunk/styles/less/widgets/
中(相对于您的widgets.less
文件)
只需像这样设置路径:
gulp.task('buildStyles', function() {
return gulp.src([
// ...
])
// ... other gulp tasks here
.pipe(less({
paths: [
'/Library/WebServer/Documents/qjt2015/trunk/styles/less/',
'/Library/WebServer/Documents/qjt2015/trunk/styles/less/widgets/',
'/Library/WebServer/Documents/qjt2015/trunk/styles/less/pages/',
// add additional paths here for less to find imports in
// less will tell you which import files it can't find, so simply tell it where to find them.
]
))
.pipe(concat('allmin.css'))
// ...
});
```