gpt4 book ai didi

javascript - 如何让 webpack 在构建过程中不将 process.env 变量转换为其值?

转载 作者:太空宇宙 更新时间:2023-11-04 03:21:24 25 4
gpt4 key购买 nike

我的项目文件之一中有以下内容:

const baas = process.env.DBID;
console.log('baas', baas);

如果我运行:

cross-env PORT=4000 NODE_ENV=production WEBPACK_CONFIG=browser_prod,server_prod webpack --colors

我的 server.js 文件如下所示:

const baas = undefined;
console.log('baas', baas);
正如预期的那样。但是,我希望能够在运行构建的应用程序时而不是构建应用程序时设置 ID,即:

DBID=someotherid node dist/server.js

因此,我需要 webpack 在构建时不将 const baas = process.env.DBID 转换为它的值,而是保持原样,以便 server.js 在运行时使用它的值。

我该怎么做?

注意:如果我手动编辑构建的 server.js 并将 undefined 更改为 process.env.DBID,则运行脚本将起作用,并且应用程序会使用运行时的环境变量,但我不想在构建后编辑文件。

最佳答案

您使用了错误的目标。
默认情况下,webpack 构建要在浏览器中运行的应用程序。这意味着它将模拟 native Node 函数,例如 path fsprocess

您的目标是 Node ,因此无需模拟这些。
将其添加到您的 webpack.config.js

module.exports = {
target: 'node'
};

https://webpack.js.org/concepts/targets/#usage

关于javascript - 如何让 webpack 在构建过程中不将 process.env 变量转换为其值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49703632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com