添加 netlify.toml 文件后 Netlify 中断

Netlify breaks after adding netlify.toml file

我们是 运行 一个非常简单的设置,我们有一个使用 yarn build 构建的 Vuepress 项目,它与 vuepress build 相关。到目前为止一切都很好(第一次 netlify 用户)

我们现在想要在生产构建中使用环境变量。 为此,我添加了一个如下所示的 netlify.toml

[context.production]
  environment = { NODE_ENV = "production" }

我不知道为什么,但是主分支上的构建(这是我们的生产构建)突然中断了,因为 yarn 找不到 vuepress 命令了。

这在引入 netlify.toml 之前运行良好(并且对于非生产分支仍然运行良好)

构建日志如下所示:

3:04:22 PM: $ yarn docs:build
3:04:22 PM: yarn run v1.22.10
3:04:22 PM: $ vuepress build docs --clean-cache --clean-temp
3:04:22 PM: /bin/sh: 1: vuepress: not found
3:04:22 PM: error Command failed with exit code 127.
3:04:22 PM: info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

当人们想要使用 NODE_ENV 通过自定义构建脚本等为他们的构建做出决策时,这是 Netlify 上的一个常见问题。

默认情况下 Netlify set NODE_ENV to development 上的构建机器人,因此 yarn 将安装开发依赖项。

如果 vuepress 在你的 devDependencies 中,yarn 会在 Netlify 自动运行 yarn install 时忽略它们。有一个couple work arounds.

  • 使用:NODE_ENV=development yarn install && yarn docs:build
  • 使用:yarn add vuepress && yarn docs:build
  • 如果不需要,请删除环境变量设置。如果您需要知道它是否是生产版本,您可以随时使用 Netlify 在生产版本中设置的 CONTEXT

还有一些其他选项,但为了简洁起见,我将其保留在这里。