Don';t bundle process.env变量,webpack/vue.js

Don';t bundle process.env变量,webpack/vue.js,vue.js,npm,webpack,Vue.js,Npm,Webpack,我有一个Vue.js应用程序,可以导入作为Vue.js库的专用npm包: // Vue.js app import { someComponent } from '@private-npm/some-library'; someComponent中的某些代码如下所示: // someComponent const username = process.env.USERNAME; 当我构建某个库,以便将其发布到我的私有repo时,它会在bundle文件中以纯文本形式写入流程环境变量 因此,我关

我有一个Vue.js应用程序,可以导入作为Vue.js库的专用npm包:

// Vue.js app
import { someComponent } from '@private-npm/some-library';
someComponent
中的某些代码如下所示:

// someComponent
const username = process.env.USERNAME;
当我构建
某个库
,以便将其发布到我的私有repo时,它会在bundle文件中以纯文本形式写入流程环境变量

因此,我关注的是:

  • 尽管我的npm是私有的,但我觉得将环境变量写入模块是一种糟糕的做法,有人可以在
    node\u模块中安装和查看该模块
  • 我需要能够构建使用不同环境变量的库的Vue.js应用程序

所以总而言之,,我需要我的捆绑库不导入流程环境变量的实际值,而是将其保留为
process.env.USERNAME
,这样当Vue.js应用程序构建时,它可以通过
.env

动态更改该变量,我想您可以将该变量设置为返回
process.env.USERNAME
相反,似乎您的私有包必须在使用之前构建,这意味着用户名将被注入到构建代码中(因为这是构建过程的一部分);如果你不希望这种情况发生,那么你不能提前构建它,而是在主应用程序旁边以每次使用为基础构建它。私有包的设计不允许动态设置用户名。