我正在使用组件和组件构建来管理和构建我的前端依赖项。我有一个节点脚本,取自示例,它构建了我的所有组件。但它不会复制我的文件。这是有问题的部分(完整代码如下):
build.files(tree)
.use('files', build.plugins.copy())
.use('fonts', build.plugins.copy())
.use('images', build.plugins.copy())
.end();
我认为它不起作用,因为fs.writeFileSync()
示例中的任何地方都没有调用,但我不确定它是否需要。根据示例,它应该复制我的 component.json 中列出的文件,如下所示:
{
"name": "component"
"images": [
"logo.jpg"
]
}
但它不会将我的图像复制到构建文件夹(我相信 component.jsons 或组件本身没有任何错误,我怀疑这是构建代码的问题)。这是完整的脚本:
/**
* =============================================================================
* Builder (https://github.com/component/builder2.js)
* =============================================================================
*/
var fs = require('fs');
var resolve = require('component-resolver');
var build = require('component-builder');
var mkdirp = require('mkdirp');
var argv = require('minimist')(process.argv.slice(2), {boolean: true}); // parse argument options
var src = process.cwd() + '/' + argv.src;
var dest = process.cwd() + '/' + argv.dest;
var components = process.cwd() + '/' + argv.components;
var buildname = argv.buildname;
var dev = argv.dev || false;
// resolve the dependency tree
resolve(src, {
install: true, // install the remote components locally
development: dev, // whether to include development components
out: components // folder to install components to
}, function (err, tree) {
if (err) throw err;
// create 'dest' path
mkdirp(dest, function (err) {
if (err) throw err;
});
// build `.js` files from components' `.scripts` field
build.scripts(tree)
.use('scripts', build.plugins.js())
.end(function (err, string) {
if (err) throw err;
fs.writeFileSync(dest + '/' + buildname + '.js', string);
});
// build `.css` files from components' `.styles` field
build.styles(tree)
.use('styles', build.plugins.css())
.end(function (err, string) {
if (err) throw err;
fs.writeFileSync(dest + '/' + buildname + '.css', string);
});
// copy other files to the build folder
build.files(tree)
.use('files', build.plugins.copy())
.use('fonts', build.plugins.copy())
.use('images', build.plugins.copy())
.end(); // callback optional
})