我需要在webpack配置中使用一个库来获取进行构建的个人的用户名。我正在使用异步的npm 'username'包,并在获取用户名时返回一个承诺。
const username = require('username');
username()。then(username => {});
webpack documentation描述了一种返回承诺的配置
module.exports =()=> { 返回新的承诺((解决,拒绝)=> {})}
和另一种使用CLI命令行中的环境变量的配置
module.exports = function(env){}
,但不是如何将两者结合使用。
我需要能够从命令行读入CLI中设置的环境变量--env=prod
,如下所示:package.json
"scripts": {
"start": "webpack-dev-server --env=local --port=4200 --history-api-fallback",
"build": "webpack",
"build-dev": "rimraf dist && webpack --env=dev --colors --bail",
"build-prod": "rimraf dist && webpack -p --env=prod --colors --bail",
"test": "karma start ./karma.conf.js"
},
答案 0 :(得分:0)
经过一些试验和错误,我发现可以结合两种配置文件技术,你可以将导出设置为给你环境变量的函数,然后这个函数可以返回一个promise本身,并且承诺可以返回配置。
通过这种方式,您可以在webpack的配置中获得promise和环境变量的结果。
module.exports = function(env) {
console.log(`Building target environment: ${env}`);
return username().then(username => {
return {
"devtool": "source-map",
// ... original config here
};
});
};