包含在gulp文件中的外部文件

时间:2015-10-13 17:47:46

标签: node.js gulp

我有一个gulp文件,其结构如下:

// =============== helper JS stuff =============== 

var production = false;

var folders = {
    folder1: "./myfolder",
    folder2: "./myfolder2"...
}

function Module() {
 this.jsFiles = ...
 this.cssFiles = ...
}

var Modules = [
    new Module({ first: module }),
    new Module({ second: module })...]

// =============== Tasks =============== 

gulp.task('myTask', function(){ 
    //work with modules
});

我想在(至少)三个文件中分离(gulpfile.js)来自其他纯自定义javascript(特别是模块列表):

Solution

-- gulpFolder

---- consts.js       // declare here dirs/folders/other constants
---- module.js       // helper 'Module' object declaration 
---- listModules.js  // a list of 'Module's to work with (to update)

-- gulpfile.js       // tasks definitions, works with the module list

是否有可能只是"导入"进入gulpfile.js只是简单的javascript文件,如下所述(如consts.jsmodule.js等)?

我尝试使用requireDir

var requireDir = require('require-dir');
...
var dir = requireDir('./website/!gulp'); // ?

但是这段代码似乎并没有真正导入" jsfiles ......据我了解, require requireDir 仅适用于nodeJS模块/文件......

1 个答案:

答案 0 :(得分:1)

在节点中,每个javascript源文件都是一个单独的命名空间。当您require文件时,您只能访问该文件export - ed。这意味着您必须从其他每个文件中export。例如:

<强> module.js:

function Module() {
 this.jsFiles = ...
 this.cssFiles = ...
}
module.exports = Module; // export!

<强> listModules:

var Modules = [
    new Module({ first: module }),
    new Module({ second: module })...]

module.exports = Modules; // export!

然后在您的主文件中,您可以访问以下代码:

var Module = require("gulpFolder/module.js");
var Modules = require("gulpFolder/moduleList.js");

gulp.task('myTask', function(){ 
    //work with modules
});