我有一个异步函数,该函数返回一组webpack entries
,我想使用async / await从函数中获取entry
属性,但是由于webpack.config.js
{ {1}}的普通对象我无法执行任何顶级等待并返回普通对象。
这是我的意思:
module.export
我当然知道不可能进行顶层等待,但是,我需要const myFunc = require('./something');
const entry = await myFunc(__dirname);
module.exports = {
entry,
"mode": "development",
"output": {
"path": __dirname+'/static',
"filename": "[name].[chunkhash:8].js"
}
}
到module.export
的诺言,而不是这个简单的对象。在webpack中可以吗?
答案 0 :(得分:0)
我在UNIX中通过以下方式进行处理:
export ENTRY=$(yarn --silent ts-node ./riddance.run.ts ../LAST_STAND)
yarn webpack
和
const entry = JSON.parse(process.env.ENTRY);
module.exports = {
entry,
"mode": "none",
"output": {
"path": __dirname+'/static',
"filename": "[name]"
}
}
答案 1 :(得分:0)
您可以尝试使用webpack4。我相信您可以分配一个异步函数,将一个json对象返回给您module.exports而不是一个普通的json对象。尝试在webpack.config.js中添加以下代码
我正在使用webpack 4.1.1,对我来说很好用。
const doAsync = async () => {
const myFunc = require('./something');
const entry = await myFunc(__dirname);
return {
entry,
'mode': 'none',
'output': {
'path': __dirname + '/static',
'filename': '[name]'
}
};
};
module.exports = doAsync;
答案 2 :(得分:0)
roshan092 的回答几乎是完整的,对我来说,它适用于 doAsync
之后的调用,如下所示:
const doAsync = async () => {
const myFunc = require('./something');
const entry = await myFunc(__dirname);
return {
entry,
'mode': 'none',
'output': {
'path': __dirname + '/static',
'filename': '[name]'
}
};
};
module.exports = doAsync(); // here the invocation