我希望将我的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
访问它。任何提示或想法都非常感谢。
答案 0 :(得分:10)
Node.js允许您使用require()
导入其他文件。它支持three types of files:
对于JavaScript文件,从require()
返回的值是导入文件中分配给module.exports
的值。
所以对于你的用例:
<强>吞/ 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' }));
});
答案 1 :(得分:3)
您可以使用json文件存储资源或源文件位置,并将其加载到gulp文件中。
例如:
// config.json
{
"scripts": ["awful.js", "lot.js", "of.js", "js.js", "files.js"]
}
在您的gulp文件中,您可以
// gulpfile.js
var config = require('./config');
var scripts = config.scripts;
console.log(scripts);