我正在用口水 v4 。
gulpfile.js:
function mysass() {
return gulp.src([css.sasspth + '/site.scss'])
.pipe(sass().on('error', sass.logError))
.pipe(gulp.dest(css.assets));
}
exports.mysass = mysass;
以上工作正常,但我想做一些不同的事情。 我想做的就是像这样将回调传递给gulp.src。
function mysass(filepath) {
return gulp.src(filepath)
.pipe(sass().on('error', sass.logError))
.pipe(gulp.dest(css.assets));
}
exports.mysass = mysass;
当我在命令行中运行它时,我得到一个错误。
gulp mysass(css.sasspth + '/site.scss')
错误:
Task never defined: mysass(css.sasspth
如何使其正常工作?
答案 0 :(得分:1)
无法像在Javascript中调用函数一样直接用参数调用Gulp任务。您可以使用与任何NodeJS应用程序相同的方法(例如minimist
,yargs
,Commander.js
)从命令行提取参数,但是您需要自己以编程方式访问它们:>
const argv = require('yargs').argv
function mysass() {
return gulp.src(argv.path)
.pipe(...)
.pipe(gulp.dest(...))
}
当您尝试在自变量中访问变量css.sasspath
时,您将需要调用eval()
或类似的东西,但一如既往,请务必小心。