纱线安装显示最新,但无法启动轨道控制台



我一直在使用webpack,vue.js和rails开发一个应用程序。两个月没有问题,但是当我尝试启动Rails Console rails c时,yarn抱怨包裹过时:

error An unexpected error occurred: "Unknown language key integrityNodeDoesntMatch".
info If you think this is a bug, please open a bug report with the information provided in "/Users/maksimfedotov/vras/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/check for documentation about this command.

========================================
  Your Yarn packages are out of date!
  Please run `yarn install` to update.
========================================

但是,当我运行yarn install

yarn install v1.3.2
[1/4] 🔍  Resolving packages...
success Already up-to-date.
✨  Done in 0.71s.

我一直在查看纱线和WebPacker文档,尝试了各种yarn清理命令,但没有运气。

有趣的是,我仍然可以运行服务器,这是唯一抱怨的控制台。

这是一个旧问题,已经解决了,所以我最终写下了我所做的事情:

简单地删除node_modules通常可以解决问题。如果您使用的是弹簧,它也可能会弄乱,因此请考虑运行DISABLE_SPRING=1 rails s以查看是否有帮助

尝试通过运行spring stop重新启动弹簧。

这为我解决了问题,这意味着我不需要不断使用弹簧禁用标志的命令。

上述命令停止弹簧:要检查它自动重新启动是否重新启动,请运行spring status

归功于解决方案的GitHub上的评论!

您可以在config/environments/development.rb

中添加

此配置设置

config.webpacker.check_yarn_integrity = false

它也忘记了在每个铁路呼叫上检查纱线的完整性,作为迁移,启动控制台...,在开发环境中

由于节点 - 萨斯和节点版本16之间的兼容性问题,此问题在2021年4月重新出现。(我在这里有类似的问题,并在下面提供了类似的答案(。

因此,我的解决方案是降级节点,直到版本16完全兼容。

使用nvm install 14安装节点14,然后将其设置为使用nvm alias default 14的全局默认值。

然后:

  1. 如果您正在运行的导轨服务器,请停止
  2. 打开一个新的新终端窗口(以便node --version返回14.x(不是16(
  3. 运行spring stop
  4. 删除yarn.lock
  5. 使用rm -rf node_modules
  6. 删除现有节点模块
  7. 检查node --version是否返回14.如果它不再运行nvm install 14
  8. 现在用yarn install重新安装模块(如果您没有节点14的纱线,请使用npm install --global yarn安装(
  9. 它应该成功!
  10. 重新启动您的Rails Server,它将起作用!

其他有用的信息:

  • 这个GitHub问题 - 此评论特别

尝试yarn install然后再次rails c

如果要切换更改yarn.lock的分支,并且只想在每次切换时都不必继续运行yarn install,则可以将其添加到您的app/config/development.rb

config.webpacker.check_yarn_integrity = ENV['SKIP_YARN'].nil?

然后,当铁轨抱怨时,您可以简单地执行此操作

SKIP_YARN=true rails c

在我的情况下,这解决了问题。

rm -rf yarn.lock
yarn install

尝试以下方法: NODE_ENV=development yarn install

最新更新