Configuration 如何同时使用网页包配置类型和环境功能

Configuration 如何同时使用网页包配置类型和环境功能,configuration,promise,environment-variables,webpack-2,Configuration,Promise,Environment Variables,Webpack 2,我需要在webpack配置中使用一个库来获取进行构建的个人的用户名。我使用的包是异步的,在获得用户名时返回一个承诺 const username=require('username') username()。然后(username=>{}) 描述了一种返回承诺的配置类型 module.exports=()=>{ 返回新承诺((解析,拒绝)=>{}) 以及使用CLI命令行中的环境变量的另一种配置类型 module.exports=函数(env){} ,但不是如何将两者结合使用 我需要能够从命令行读

我需要在webpack配置中使用一个库来获取进行构建的个人的用户名。我使用的包是异步的,在获得用户名时返回一个承诺

const username=require('username')

username()。然后(username=>{})

描述了一种返回承诺的配置类型

module.exports=()=>{ 返回新承诺((解析,拒绝)=>{})

以及使用CLI命令行中的环境变量的另一种配置类型

module.exports=函数(env){}

,但不是如何将两者结合使用

我需要能够从命令行读取CLI中设置的环境变量
--env=prod
,如package.json中所示

“脚本”:{
“开始”:“webpack dev server--env=local--port=4200--history api fallback”,
“构建”:“网页包”,
“构建开发”:“rimraf dist&&webpack--env=dev--colors--bail”,
“构建产品”:“rimraf dist&&webpack-p--env=prod--colors--bail”,
“测试”:“karma start./karma.conf.js”

},
经过一些尝试和错误,我发现可以将这两种配置文件技术结合起来,您可以将导出设置为函数,该函数将为您提供环境变量,然后该函数可以返回一个承诺本身,承诺可以返回配置

通过这种方式,您可以在webpack的配置中获得promise和环境变量的结果

module.exports=函数(env){
log(`Building target environment:${env}`);
返回用户名()。然后(用户名=>{
返回{
“devtool”:“源映射”,
//…这里是原始配置
};
});
};