在我的 gulpfile.js 中,我有以下两个函数,它们利用渲染 gulp-nun-jucks 来呈现 2 个不同的视图...
function genNunJucks(cb) {
return src(paths.views.src)
.pipe(nunjucksRender({
path: ['src/views/'], // String or Array
ext: '.html',
inheritExtension: false,
envOptions: {
watch: true
},
manageEnv: manageEnvironment,
loaders: null
}))
.pipe(htmlbeautify({
indentSize: 2,
"eol": "\n",
"indent_level": 0,
"preserve_newlines": false
}))
.pipe(dest(paths.views.dest))
cb();
}
function genNunJucks2(cb) {
return src(paths.views.src2)
.pipe(nunjucksRender({
path: ['src/views/'], // String or Array
ext: '.html',
inheritExtension: false,
envOptions: {
watch: true
},
manageEnv: manageEnvironment,
loaders: null
}))
.pipe(htmlbeautify({
indentSize: 2,
"eol": "\n",
"indent_level": 0,
"preserve_newlines": false
}))
.pipe(dest(paths.views.dest2))
cb();
}
当涉及到 gulp 进程的返回区域中的工作时,如何将这两个函数组合成一个执行相同工作的函数?您会注意到我的
path.views.src(x)
是我重复该过程的原因。
也许我可以应用某种循环过程来查看 paths.views.src:['','',''] 的完整数组?
非常感谢任何提示
您可以为此使用闭包,并创建一个获取
src
作为参数并返回您要使用的 genNunJucks
的函数:
function createGenNumChunksFunction(src) {
return function genNunJucks(cb) {
return src(src)
.pipe(nunjucksRender({
path: ['src/views/'], // String or Array
ext: '.html',
inheritExtension: false,
envOptions: {
watch: true
},
manageEnv: manageEnvironment,
loaders: null
}))
.pipe(htmlbeautify({
indentSize: 2,
"eol": "\n",
"indent_level": 0,
"preserve_newlines": false
}))
.pipe(dest(paths.views.dest))
cb();
}
}
并且您可以通过
genNunJucks
和 createGenNumChunksFunction(paths.views.src)
,而不是在您现在使用它的地方传递
createGenNumChunksFunction(paths.views.src2)