Ish*_*mad 8 windows command-line yarnpkg
我有一个从环境变量或配置中读取端口号的代码。代码看起来像这样
const port = process.env.PORT || serverConfig.port;
await app.listen(port);
Run Code Online (Sandbox Code Playgroud)
要在不定义环境变量的情况下运行应用程序,我运行以下 yarn 命令。
yarn start:dev
此命令在 Linux shell 和 Windows 命令行中成功运行。
现在,我想传递环境变量。我试着跟随,
PORT=2344 yarn start:dev
此命令在 Linux shell 中成功运行,但在 Windows 命令行中失败。我尝试了以下方法,但无法使其正常工作。
试过:PORT=2344 yarn start:dev
我收到错误消息:'PORT' 不是内部或外部命令,也不是可运行的程序或批处理文件。
试过:yarn PORT=2344 start:dev
我收到错误:未找到 yarn run v1.17.3 错误命令“PORT=2344”。info 访问https://yarnpkg.com/en/docs/cli/run获取有关此命令的文档。
请问有什么想法吗?我知道,我可以从 Windows 的系统属性中定义环境变量。但是,如果我可以从命令行做到这一点,有什么办法吗?
我建议您使用名为cross-env的 NPM 模块。无论平台如何,它都允许在命令行上添加特定的环境变量。话虽如此,您可以尝试:
$ cross-env PORT=2344 yarn start:dev
Run Code Online (Sandbox Code Playgroud)
在 Windows 命令提示符中找到了此问题的解决方案。
在项目根文件夹(src 文件夹外部)中创建一个 .env 文件。
在其中定义 PORT。就我而言,.env 文件的内容将是,
运行纱线启动:dev
应用程序将使用您在 .env 文件中指定的端口号。