jon*_*bbs 1 javascript node.js gulp postcss
我一直在使用gulp一段时间,并知道如何导入另一个节点模块,例如
var sass = require('gulp-sass');
Run Code Online (Sandbox Code Playgroud)
这很好,但是我的gulpfile填满了我想要移动到一个单独的文件和"require"的代码.具体来说,我正在编写一个postcss插件,我已经在gulpfile中声明为函数时已经工作了.我的问题是如何将我的函数放在外部文件中,并像我做一个节点模块一样需要它.我是否需要在需要的文件中"导出"该功能?我是否需要使用ES6模块或类似的东西?
顺便说一句,我意识到,如果我这样做,我可能会(A)将其转换为适当的节点模块并将其放在私有NPM存储库中,但这似乎是不必要的,或者(B)将其转换为适当的gulp插件,但这需要学习如何编写gulp插件并学习流和东西.这两个都可能更好,但需要更多的时间,所以我决定暂时保持功能简单和本地.
首先创建一个新的js文件(这里./lib/myModule.js):
//./lib/myModule.js
module.exports =  {
    fn1: function() { /**/ },
    fn2: function() { /**/ },
}
Run Code Online (Sandbox Code Playgroud)
您还可以将一些参数传递给您的模块:
// ./lib/myAwesomeModule.js
var fn1 = function() {
}
module.exports =  function(args) {
    fn1: fn1,
    fn2: function() { 
        // do something with the args variable
    },
}
Run Code Online (Sandbox Code Playgroud)
然后在你的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()
}
Run Code Online (Sandbox Code Playgroud)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           4024 次  |  
        
|   最近记录:  |