在使用React时,使用CircleCI时,dotenv-expand出现“Maximum call stack size exceeded”的错误提示。

11
我正在尝试在CircleCI上构建一个React应用程序,最近一直没有出现任何问题。但是,每当我尝试从我的circle.yml运行npm run build时,就会出现以下错误:
    #!/bin/bash -eo pipefail
npm run build

> jobcatcher-web@0.0.1 build /home/circleci/repo
> react-scripts build

/home/circleci/repo/node_modules/dotenv-expand/lib/main.js:8
      var key = match.replace(/\$|{|}/g, '')
                      ^

RangeError: Maximum call stack size exceeded
    at String.replace (<anonymous>)
    at /home/circleci/repo/node_modules/dotenv-expand/lib/main.js:8:23
    at Array.forEach (<anonymous>)
    at interpolate (/home/circleci/repo/node_modules/dotenv-expand/lib/main.js:7:13)
    at /home/circleci/repo/node_modules/dotenv-expand/lib/main.js:14:18
    at Array.forEach (<anonymous>)
    at interpolate (/home/circleci/repo/node_modules/dotenv-expand/lib/main.js:7:13)
    at /home/circleci/repo/node_modules/dotenv-expand/lib/main.js:14:18
    at Array.forEach (<anonymous>)
    at interpolate (/home/circleci/repo/node_modules/dotenv-expand/lib/main.js:7:13)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! jobcatcher-web@0.0.1 build: `react-scripts build`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the jobcatcher-web@0.0.1 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/circleci/.npm/_logs/2018-03-14T20_57_45_719Z-debug.log
Exited with code 1

我尝试添加 / 重新添加 dotenv-expand 依赖项以及我在 CircleCI 中使用的任何环境变量,但没有成功。有什么建议吗?谢谢。

最近我遇到了一个非常相似的错误。我们可能需要在项目的Github上提交一个问题。 - termux
1
我想我已经找到了实际的错误! 我决定从头开始重建我的项目,并注意到只有在将我的.env.production文件添加到目录中时才会出现错误。 我使用环境变量来设置一些键,例如${REACT_APP_API_KEY_GOOGLE_MAPS},但如果我硬编码该值,则可以正确地工作...我将在React Github上提出问题并在此处发布链接。 - edant92
好的,请忽略我上一条评论。我一直在使用相同的名称导入环境变量,例如 REACT_APP_API_KEY_GOOGLE_MAPS=${REACT_APP_API_KEY_GOOGLE_MAPS} 一旦我更改了名称,例如 REACT_APP_API_KEY_GOOGLE_MAPS=${REACT_APP_API_KEY_GOOGLE_MAPS_EXT},这个问题就解决了! - edant92
1个回答

28

原来我一直在使用相同名称导入环境变量,例如:REACT_APP_API_KEY_GOOGLE_MAPS=${REACT_APP_API_KEY_GOOGLE_MAPS}。 一旦我更改了名称,例如: REACT_APP_API_KEY_GOOGLE_MAPS=${REACT_APP_API_KEY_GOOGLE_MAPS_EXT} 这个问题就得到了解决!


1
这个很好用!更让我感兴趣的是,为什么一开始会有这个问题? - Ali Abbas Jaffri
我在环境文件中定义了两个变量。PORT=3003API_SERVER=http://localhost:$PORT。将 API_SERVER 中的 $PORT 移除后问题得到解决。API_SERVER=http://localhost:3003 - Reza Bayat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接