如何防止Netlify将警告视为错误,因为process.env.CI = true?

93

在 Netlify 上部署新项目失败了。检查日志后,我发现此前成功部署的日志中没有出现以下内容:

Treating warnings as errors because process.env.CI = true.
Most CI servers set it automatically. 
Failed to compile.

如何修复我的构建?


CI= npm run build 由于某些原因, CI= yarn build 似乎无法正常工作。 - theshubhagrwl
12个回答

135

哇...我想知道为什么他们不把它设为默认值...或者我们的项目是否可以有一些标志来切换它...现在codesandbox.io只需将github更改为github box就可以部署我的github项目。而Nelify和Vercel则不能。 - nonopolarity
谢谢,这很有帮助。 - hot_penguin
8
我想知道为什么他们把警告视为错误,区分“错误”和“警告”的目的是什么呢? - rickvian
这个命令很有用。我能够忽略我的临时错误。 - Md. Maruf Sarker
说实话,这不应该是一个解决方案。如果其他代码依赖于此环境变量,那么您会使其与环境不一致-它将失败或产生意外行为。我看了所有的评论,没有找到任何适当的解决方案...它应该是一个单独的标志。 - Artem Ptushkin

61

如果您的部署失败,请前往 部署 -> 部署设置

在那里,您会看到“环境”选项卡。然后单击环境变量 -> 编辑变量

  • 键:CI
  • 值:False

清除缓存后重新部署。


21

2020年6月15日,Netlify进行了一项配置更改,即“在构建环境中添加环境变量CI,并将其值设置为true”。在Netlify的“构建和部署”设置中,将您的构建命令更改为CI= npm run build。这将防止Netlify将警告视为错误。有关此问题的更多讨论可以在Netlify的论坛中找到。


9

只需将构建命令更改为:

CI= yarn build

或者
CI= npm build

就像其他帖子所说,这是由于 CI 的原因,因此任何警告都会停止构建。上面的几行代码只是表示将 CI 变量设置为空,然后启动命令 yarn build


5

3

进入部署设置,然后进入环境变量,接着点击编辑 设置键:CI 值:false

构建设置中,只需要使用默认设置中的yarn buildnpm run build,不需要添加CI=yarn buildCI=npm build


2

我发现大家都建议我们将CI变量设置为false,但是警告信息是否值得关注呢?毕竟我看到大多数CI服务器都实现了这样的功能,我相信它们有一些目的,也许将警告视为错误只是其中之一。因此,与其禁用此类功能,不如检查你是否想在部署的应用程序中接收这些警告。如果这是你所期望的,例如linter警告,那么只需配置你的linter规则配置或在构建阶段禁用lint检查,在流水线中将其作为单独步骤设置,并且你可以在此特定阶段将CI变量设置为false。如果你使用的是azure static web apps deploy操作,则这样做会更安全。


1

CI='' npm run build

更多详情请查看这里


1
有时即使设置了 CI = yarn build 或 npm build 命令,构建也会失败。
在我的情况下,我在本地计算机上运行了构建命令,但是出现了一个导入错误,该错误未在 Netlify 控制台中显示。
因此,如果构建失败,请在本地计算机上运行一次,这将通知您任何错误。

0

我正在寻找解决Gitlab CI中此问题的方法,以下是在.gitlab.yml中对我有效的解决方案:

...
default:
  before_script:
    - CI=false yarn build
...

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