我有一段代码可以从环境变量或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中。但任何方式,如果我可以做到这一点从命令行?
6条答案
按热度按时间bzzcjhmw1#
我建议你使用名为cross-env的NPM模块。它允许在命令行添加特定的env变量,而不管平台如何。有了它,你可以尝试:
55ooxyrt2#
您可以在Windows命令提示符下使用
&
(或&&
)链接命令。要设置环境变量,您需要使用set
命令。结果应如下所示:
set PORT=1234 && yarn start:dev
.iaqfqrcu3#
已在Windows命令提示符中找到此问题的解决方案。
1.在项目根文件夹(src文件夹外)中创建.env文件。
1.在其中定义PORT。在我的例子中,.env文件的内容将是,
1.运行Yarn开始:dev
1.应用程序将使用您在.env文件中指定端口号。
qrjkbowd4#
将
.env
文件置于根目录下。然后,以下命令将显示.env
文件的内容,然后运行yarn start command
或此命令
如果更新. env中的任何变量,则关闭终端并打开新的终端窗口,然后可以再次运行上述命令。或者也可以运行unset命令删除现有的变量。
8ehkhllq5#
您可以使用流行的软件包dotenv:
创建一个文件. env在根目录下把你所有的env变量
例如:
像这样运行代码
这里的解释:
[https://github.com/motdotla/dotenv #预加载]
smdnsysy6#
要在Windows命令提示符中定义环境变量,我们可以使用set命令,然后您可以将调用拆分为两行。
set命令在当前命令提示符中保持不变,因此您只需要运行它一次。
bash中的等效命令是“export”。