javascript - Gatsby 运行良好,没有显示明显应该标记的错误(函数不存在)
问题描述
我有一个运行良好的 gatsby 项目。我刚刚复制了整个项目(没有 node-modules 文件夹)并做了一个yarn install
,因为我想测试一些东西。但是,当我运行该项目时,我遇到了几个错误。我刚刚检查了其中一个,这显然是一个需要修复的错误。我调用的函数在任何地方都不存在。
但是我想知道为什么我的初始项目至少没有抛出任何错误或警告?这对我来说没有意义,让我担心。任何想法为什么会这样?
解决方案
假设您描述的场景(克隆的工作项目),问题必须来自它们之间的不同节点版本或由于某些包版本冲突。您有几种方法可以修复它:
节点版本
.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
,因为它包含项目的锁定当前工作版本。
推荐阅读
- https - HTTPS 文件传输在遇到 0x1a(替换字符)时停止
- java - 在 Java 中验证特定的字符串模式
- raspberry-pi - 我可以从服务器/树莓派触发 Google Home 上的 Google Assistant 操作吗?
- jquery - 如何在 ajax 的下一个插入中修复“数组到字符串的转换”
- c# - 查询映射的 CustomObject 时出现 NullPointerException
- php - Wordpress - php 更新后 Ajax 请求不再有效
- ssl - 如何使用反向代理修复 Keycloak 中的“我们很抱歉需要 HTTPS”?
- javascript - 服务人员返回正确响应但仍然出现“无互联网”错误
- java - 如何在使用 MVC 时将我的游戏缩放为不同的分辨率
- jekyll - 如何解决 Jekyll 中插件版本之间的冲突?