我想使用gulp + Foundation 6+ browserify。在cli中运行gulp时,我在终端中出现以下错误
write ./scss.css/foundation.css
path.js:7
throw new TypeError('Path must be a string. Received ' + inspect(path));
^
TypeError: Path must be a string. Received undefined
at assertPath (path.js:7:11)
at Object.join (path.js:1211:7)
at exports.replaceLocation (/Applications/MAMP/htdocs/Jober/node_modules/gulp-ruby-sass/lib/utils.js:32:14)
at /Applications/MAMP/htdocs/Jober/node_modules/gulp-ruby-sass/index.js:179:13
at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:416:3)我的gulpfile.js是:
var gulp = require ('gulp'),
logger = require ('gulp-util'),
concat = require ('gulp-concat'),
minifyCSS = require ('gulp-minify-css'),
compileSass = require ('gulp-ruby-sass');
var scss_sources,
input_address,
output_address;
// Input and Output Address
input_address = 'asstes/src/';
output_address = 'asstes/dist/';
// Style Sources
scss_sources = [
'node_modules/foundation-sites/scss',
input_address + 'style/style.scss'];
gulp.task('styles', function(){
return compileSass(scss_sources, { style: 'expanded' })
.pipe(autoprefixer({
browsers: ['last 2 versions', 'ie >= 9', 'and_chr >= 2.3'],
cascade: false
}))
.pipe(minifyCSS())
.on('error', logger.log)
.pipe(gulp.dest(output_address + 'style'));
});
gulp.task('watch', function(){
gulp.watch(input_address + 'style/pages/*.scss', ['styles']),
});
gulp.task('default', ['styles' , 'watch']);我的style.scss是:
//Modules
@import 'foundation';
//Pages
@import 'pages/index';我的文件夹结构是:
PROJECT FOLDER
|
|_assets
| |_dist
| | |_img
| | |_js
| | |_style
| |
| |_src
| |_img
| |_js
| |_style
|
|_node_modules
| |_foundation-site
|
|_gulpfile.js我在使用gulp-ruby sass之前使用过gulp-compass,但是,有一个常见的错误:Individual stylesheets must be in the sass directory,所以把插件改成了gulp-ruby-sass。
我怎么才能修复它?
发布于 2017-03-01 03:03:10
可能是字符串连接在scss_sources中不能正常工作。
尝试将scss_sources更改为:
scss_sources = [
'node_modules/foundation-sites/scss',
'asstes/src/style/style.scss'
];如果是这样的话,这就是连接。
https://stackoverflow.com/questions/42508240
复制相似问题