我正在尝试使用两个预先存在的 ENV 变量 DOMAIN 和 URL_PREFIX 构建一个环境变量:用于反应应用程序的 PUBLIC_URL。我希望在 npm 脚本中运行“react-scripts build”命令之前这样做。
我正在使用 .env-cmdrc.json 文件将多个环境变量存储在一个地方。我目前正在构建 var 并像这样调用命令。
env-cmd -e shared,staging --use-shell "export PUBLIC_URL=https://$DOMAIN/$URL_PREFIX && react-scripts build"
我正在从包含.env-cmdrc.json
和的“客户端”文件夹中运行命令package.json
。它导致以下错误,表明变量从未扩展。
throw new ERR_INVALID_URL(input);
^
TypeError [ERR_INVALID_URL]: Invalid URL: https:///
at onParseError (internal/url.js:259:9)
at new URL (internal/url.js:335:5)
at getPublicUrlOrPath (/home/nathanielw/.nvm/versions/node/v14.16.0/lib/node_modules/react-scripts/node_modules/react-dev-utils/getPublicUrlOrPath.js:36:28)
at Object.<anonymous> (/home/nathanielw/.nvm/versions/node/v14.16.0/lib/node_modules/react-scripts/config/paths.js:26:25)
at Module._compile (internal/modules/cjs/loader.js:1063:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14)
at Module.require (internal/modules/cjs/loader.js:952:19)
at require (internal/modules/cjs/helpers.js:88:18) {
input: 'https:///',
code: 'ERR_INVALID_URL'
}
变量 $DOMAIN 和 $URL_PREFIX 被 react-scripts build 命令很好地使用:env-cmd -e shared,staging react-scripts build
或者只是printenv DOMAIN
,但它们不会出现在其他命令中,例如打印出来echo $DOMAIN
我认为在命令之间传递环境时我遗漏了一些东西,但我不知道为什么env-cmd -e shared,staging printenv DOMAIN
会起作用,但env-cmd -e shared,staging echo $DOMAIN
不会。