javascript - 从单独的 gulp 文件导入/读取变量

标签 javascript gulp fs

我希望将我的 gulpfile.js assetssrc 变量拆分到单独的文件中,以便我可以更好地管理它们。例如:

....

var scripts = ['awful.js', 'lot.js', 'of.js', 'js.js', 'files.js']

....(somewhere down the line)

gulp.task('vendorjs', function() {
    return gulp.src(scripts)

        .pipe(concat('vendor.js'))
        .pipe(rename({suffix: '.min'}))
        .pipe(uglify())
        .pipe(gulp.dest(paths.root + 'dist'))
        .pipe(notify({ message: 'vendorjs task completed' }));
});

所以我基本上感兴趣的是,如果有一种方法可以将 scripts 变量实际移动到一个单独的文件并能够从 gulpfile.js 访问它。

我一直在研究类似的东西:

require("fs").readFile('gulp/test.js', function(e, data) {
   //(test.js would be the file that holds the scripts var)
});

然而,虽然它确实读取了文件的内容,但我仍然无法从 gulpfile.js 访问它。非常感谢任何提示或想法。

最佳答案

Node.js 允许您使用 require() 导入其他文件。它支持three types of files :

  • JSON 文件。参见 DavidDomain's answer为此。
  • 二进制 Node.js 插件。对您的用例没有用。
  • JavaScript 文件。这就是您想要的。

对于 JavaScript 文件,从 require() 返回的值是分配给 module.exports 的值在导入的文件中。

因此对于您的用例:

gulp/test.js

var arrayOfFiles = ["awful.js", "lots.js"];
arrayOfFiles.push("of.js");
arrayOfFiles.push("js.js");
arrayOfFiles.push("files.js");
for (var i = 0; i < 10; i++) {
  arrayOfFiles.push("some_other_file" + i + ".js");       
}

module.exports = {
  scripts: arrayOfFiles
};

gulpfile.js

var test = require('gulp/test.js');

gulp.task('vendorjs', function() {
  return gulp.src(test.scripts)
    .pipe(concat('vendor.js'))
    .pipe(rename({suffix: '.min'}))
    .pipe(uglify())
    .pipe(gulp.dest(paths.root + 'dist'))
    .pipe(notify({ message: 'vendorjs task completed' }));
});

关于javascript - 从单独的 gulp 文件导入/读取变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38761840/

相关文章:

Gulp 复制文件但它是空的

node.js - 使用 Node fs 从 aws s3 存储桶读取文件

node.js - fs.write 仅在关闭服务器后注册

javascript - Node (express.js) next() 在流结束之前调用

Javascript 数组等于零但本身不等于

javascript - d3 中身份函数 ("function(d) { return d; }"的简写是什么?

laravel - Gulp:找不到模块 'laravel-elixir-vue-2'

javascript - 如何将外部javascript导入到聚合物项目中

javascript - 使用 Canvas 或自定义 html 结构创建 html5 游戏是否正确

javascript - VSCode的 TreeView 组件有任何独立版本吗?