提问者:小点点

Gatsby运行得非常好&没有显示明显应该标记的错误(函数不存在)


我有一个盖茨比的项目,工作非常好。 我刚才复制了整个项目(没有node-modules文件夹),并进行了纱线安装,因为我想测试一些东西。 然而,当我运行这个项目时,我会遇到几个错误。 我刚才检查了其中一个,很明显这是一个需要修复的错误。 我正在调用一个在任何地方都不存在的函数。

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


共1个答案

匿名用户

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

>

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

    手动更改NVM并运行目标文件夹中的节点版本。 一旦知道源项目节点版本,就必须对克隆的项目使用NVM use version_here

    请记住,更改节点版本后,必须使用Yarn install再次安装所有包。 强烈建议删除.cache文件夹。

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