如何将 lerna 与 dotenv 包一起使用?

How to use lerna with dotenv package?

我有一个使用 Lerna 管理的 monorepo。我需要使用多个环境变量来启动我的网络服务器。我启动服务器的 npm 脚本是:

"scripts": {
    "dev:start": "lerna run --parallel dev:start"
}

我也在尝试使用 dotenv 包为 .env 文件加载环境变量。由于 dotenv 纯粹是设置 env vars 的开发助手,我将其安装为 top package.jsondevDependencydotenv 利用 node.js 预加载脚本,例如:node -r dotenv/config server_script.js.

但是使用 Lerna,我无法再调用预加载脚本。有什么方法可以将 dotenvlerna 一起使用吗?或者,如何 运行 使用 lerna 预加载脚本?

But with Lerna, I can no longer invoke preload script

事实并非如此。 Lerna allows you 将参数传递给 npm 脚本。你只需要用一对双破折号传递它:

packages/ServerPkg/package.json:

"dev:start": "node foo.js"

package.json

"dev:start": "lerna run dev:start -- -- -r /path/to/dotenv"

应该执行:

node foo.js -r /path/to/dotenv