首页 > 解决方案 > Gatsby 运行良好,没有显示明显应该标记的错误(函数不存在)

问题描述

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

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

标签: javascriptnode.jsreactjsgatsbyyarnpkg

解决方案


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

节点版本

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

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

请记住,更改 Node 版本后,您必须使用yarn install. 强烈建议也删除.cache文件夹。

软件包版本

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


推荐阅读