windows 将环境变量从命令行传递给yarn

cbwuti44  于 2023-01-10  发布在  Windows
关注(0)|答案(6)|浏览(143)

我有一段代码可以从环境变量或config中读取端口号。代码如下所示

const port = process.env.PORT || serverConfig.port;
await app.listen(port);

为了在不定义环境变量的情况下运行应用程序,我运行了以下yarn命令。
第一个月
此命令可在Linux shell和Windows命令行中成功运行。
现在,我想传递环境变量。我试着
PORT=2344 yarn start:dev
这个命令在Linux shell中可以成功工作,但在Windows命令行中失败。我尝试了以下方法,但无法使其工作。
尝试:端口=2344Yarn开始:偏差
出现错误:“PORT”未被识别为内部或外部命令、可操作程序或批处理文件。
尝试:Yarn端口=2344开始:器械
出现错误:Yarn运行v1.17.3错误未找到命令“PORT=2344”。info有关此命令的文档,请访问https://yarnpkg.com/en/docs/cli/run
有什么想法吗?我知道,我可以定义环境变量从系统属性在Windows中。但任何方式,如果我可以做到这一点从命令行?

bzzcjhmw

bzzcjhmw1#

我建议你使用名为cross-env的NPM模块。它允许在命令行添加特定的env变量,而不管平台如何。有了它,你可以尝试:

$ cross-env PORT=2344 yarn start:dev
55ooxyrt

55ooxyrt2#

您可以在Windows命令提示符下使用&(或&&)链接命令。要设置环境变量,您需要使用set命令。
结果应如下所示:set PORT=1234 && yarn start:dev.

iaqfqrcu

iaqfqrcu3#

已在Windows命令提示符中找到此问题的解决方案。
1.在项目根文件夹(src文件夹外)中创建.env文件。
1.在其中定义PORT。在我的例子中,.env文件的内容将是,

PORT=2344

1.运行Yarn开始:dev
1.应用程序将使用您在.env文件中指定端口号。

qrjkbowd

qrjkbowd4#

.env文件置于根目录下。然后,以下命令将显示.env文件的内容,然后运行yarn start command

$ source .env && yarn start

或此命令

$ export $(cat .env) && yarn start

如果更新. env中的任何变量,则关闭终端并打开新的终端窗口,然后可以再次运行上述命令。或者也可以运行unset命令删除现有的变量。

unset VAR_NAME
8ehkhllq

8ehkhllq5#

您可以使用流行的软件包dotenv:

创建一个文件. env在根目录下把你所有的env变量
例如:

ENV=DEVELOPMENT

像这样运行代码

$ node -r dotenv/config your_script.js

这里的解释:
[https://github.com/motdotla/dotenv #预加载]

smdnsysy

smdnsysy6#

要在Windows命令提示符中定义环境变量,我们可以使用set命令,然后您可以将调用拆分为两行。

set PORT=2344
yarn start:dev

set命令在当前命令提示符中保持不变,因此您只需要运行它一次。
bash中的等效命令是“export”。

相关问题