在我的gulpfile.js中,我有以下两个函数,它们使用两个不同的视图渲染gulp-nun-jucks...
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)
是我复制这个过程的原因。
也许有某种类型的修剪过程,我可以应用它来查看完整的路径数组。
非常感谢任何提示
1条答案
按热度按时间7tofc5zh1#
您可以使用closures和currying的形式,并创建一个函数,将
src
作为参数并返回您想要使用的genNunJucks
:现在不用在使用它的地方传递
genNunJucks
,而是传递createGenNumChunksFunction(paths.views.src)
和createGenNumChunksFunction(paths.views.src2)
下面是一个可以在snipped中执行的简化版本,并说明了它是如何工作的:
另外一个注意事项--这可能与您的情况无关--如果您想直接使用
genNunJucks
而不需要先“创建”它,那么可以将它放在createGenNumChunksFunction
之外。