我尝试以下列方式进行webpack导出。我尝试将异步转换为同步(关于fs.readdir
)以获取目录中的总文件。
const webpack = require('webpack');
const async = require('async');
const path = require('path');
const fs = require('fs');
var fileList = [];
var promiso = new Promise(function(res, rej) {
fs.readdir(__dirname + "/imports/components", function(err, files) {
files.forEach(function(file) {
console.log("file", file);
fileList.push(file);
});
let config = {
entry: {
'myPages': fileList[0]
},
module: {
loaders: [
// Javascript: js, jsx
{
test: /\.jsx?$/,
loader: 'babel-loader',
query: {
presets: ['es2015', 'react']
}
}
]
},
output: {
path: path.resolve(__dirname, 'dist'),
filename: './bundler.js'
},
}
res(config)
})
});
promiso.then(function(mess) {
console.log("-------------------------mess", mess);
module.exports = mess;
});
我收到以下错误
'output.filename' is required, either in config file or as --output-filename
答案 0 :(得分:0)
在这里你应该返回promise本身,然后在其他任何地方使用它。因为require
无法正常运行。使用require()
加载的节点中的模块将同步加载,require
return
无法异步加载任何值。
module.exports = promise
在另一个文件中使用如下
require('path-to-file').then( (mess) => {
// Use mess
}).then(null, (err) => {
// Error handling
})