Gatsby 运行得很好并且没有显示明显应该标记的错误(功能不存在)

Gatsby runs perfectly fine & doesn't show errors that clearly should be flagged (function doesn't exist)

我有一个运行良好的 gatsby 项目。我刚刚复制了整个项目(没有节点模块文件夹)并做了 yarn install 因为我想测试一些东西。但是,当我 运行 该项目时,我遇到了几个错误。我刚刚检查了其中一个,这显然是一个需要修复的错误。我调用的函数在任何地方都不存在。

我想知道为什么我的初始项目至少没有抛出任何错误或警告?这对我来说没有意义并且让我担心。知道为什么会这样吗?

假设您描述的场景(克隆的工作项目),问题必须来自它们之间的不同 Node 版本或由于某些包版本冲突。您有多种修复方法:

节点版本

  • 在您的根项目中添加一个 .nvmrc 文件。您只需要在那里添加源项目的当前节点版本。例如:12.0.1,没有别的。该文件将锁定 Node 版本,并将在克隆的项目中使用它。这是最干净且可扩展的方式。

  • 手动更改目标文件夹中的 nvm 和 运行 节点版本。一旦你知道你的源项目节点版本,你必须使用 nvm use VERSION_HERE 到你的克隆项目。

请记住,更改 Node 版本后,您必须使用 yarn install 重新安装所有软件包。强烈建议也删除 .cache 文件夹。

包版本

假设您的 package.json 具有类似 ^2.3 的依赖项,并且在您的源项目中,例如您的依赖项位于 2.31。如果您克隆该项目,在 yarn install 之后,它可能需要另一个更高版本而不是 2.31。由于依赖关系之间的冲突,这可能会导致编译错误。修复它的方法是也克隆你的 yarn-lock,因为它包含项目的锁定当前工作版本。