Tho*_*ggi 2 promise async-await webpack
我有一个返回一组 webpack 的 async 函数entries,我想使用 async / awaitentry从函数中获取属性,但是由于webpack.config.js module.export一个普通对象,我无法执行任何顶级 await 并返回一个普通对象.
这就是我的意思:
const myFunc = require('./something');
const entry = await myFunc(__dirname);
module.exports = {
entry,
"mode": "development",
"output": {
"path": __dirname+'/static',
"filename": "[name].[chunkhash:8].js"
}
}
Run Code Online (Sandbox Code Playgroud)
我当然明白,顶级等待是不可能的,但是,我需要module.export给export一个承诺,而不是这种平淡的对象。这在 webpack 中可能吗?
小智 6
您可以尝试使用 webpack 4。我相信您可以分配一个异步函数返回一个 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;
Run Code Online (Sandbox Code Playgroud)
我在 UNIX 中通过以下方式处理这个问题:
export ENTRY=$(yarn --silent ts-node ./riddance.run.ts ../LAST_STAND)
yarn webpack
Run Code Online (Sandbox Code Playgroud)
和
const entry = JSON.parse(process.env.ENTRY);
module.exports = {
entry,
"mode": "none",
"output": {
"path": __dirname+'/static',
"filename": "[name]"
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1576 次 |
| 最近记录: |