需要gulpfile中的另一个文件(不在node_modules中)

我一直在使用gulp一段时间,并知道如何导入另一个节点模块,例如

var sass = require('gulp-sass'); 

这很好,但是我的大文件填满了代码,我想移动到一个单独的文件和“需要”。 具体来说,我正在写一个postcss插件,在gulpfile中声明为一个函数时,我已经工作了。 我的问题是如何把我的function在外部文件,并要求它像我做一个节点模块。 我是否需要“导出”所需文件中的function? 我是否需要使用ES6模块或类似的东西?

另一方面,我意识到如果我这样做,我可能会(A)把它变成一个合适的节点模块,并把它放在一个私有的NPM库上,但似乎没有必要,或者(B)把它变成一个适当的吞咽插件,但是这将需要学习如何编写一个大嘴插件和学习stream和东西。 这两个可能会更好,但会花费更多的时间,所以我决定保持现在简单和本地的function。

首先创build一个新的js文件(这里是./lib/myModule.js ):

 //./lib/myModule.js module.exports = { fn1: function() { /**/ }, fn2: function() { /**/ }, } 

你也可以传递一些参数给你的模块:

 // ./lib/myAwesomeModule.js var fn1 = function() { } module.exports = function(args) { fn1: fn1, fn2: function() { // do something with the args variable }, } 

然后在你的gulpfile中需要它:

 //gulpfile.js var myModule = require('./lib/myModule') // Note: here you required and call the function with some parameters var myAwesomeModule = require('./lib/myAwesomeModule')({ super: "duper", env: "development" }); // you could also have done /* var myAwesomeModuleRequire = require('./lib/myAwesomeModule') var myAwesomeModule = myAwesomeModuleRequire({ super: "duper", env: "development" }); */ gulp.task('test', function() { gulp.src() .pipe(myModule.fn1) .pipe(myAwesomeModule.fn1) .gulp.dest() } 
Interesting Posts