我希望将我的 gulpfile.js assets
或 src
变量拆分到单独的文件中,以便我可以更好地管理它们。例如:
....
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/