纱线安装说是最新的,但无法启动rails控制台

时间:2018-04-02 11:35:23

标签: ruby-on-rails webpack ruby-on-rails-5 yarnpkg

我一直在使用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.

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

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

8 个答案:

答案 0 :(得分:3)

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

这为我解决了这个问题,这意味着我不需要在命令前加上spring disable标志。

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

为该解决方案贷记this comment on GitHub

答案 1 :(得分:3)

您可以添加config/environments/development.rb

此配置设置

config.webpacker.check_yarn_integrity = false

它还忘记了在开发环境中进行迁移,启动控制台...时,在每次Rails调用时都要检查纱线的完整性

答案 2 :(得分:2)

这是一个老问题,已经解决了,所以我要写下最后的内容:

只需删除node_modules通常就可以解决此问题。如果您使用的是Spring,它也可能使事情变得混乱,因此请考虑运行DISABLE_SPRING=1 rails s以查看是否有帮助

答案 3 :(得分:0)

先尝试yarn install,然后再尝试rails c

答案 4 :(得分:0)

如果您要切换更改yarn.lock的分支,并且只想运行Rails控制台而不必每次都保持运行yarn install,则可以将其添加到app/config/development.rb

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

然后当Rails抱怨时,您只需执行此操作

SKIP_YARN=true rails c

答案 5 :(得分:0)

就我而言,这可以解决问题。

rm -rf yarn.lock
yarn install

答案 6 :(得分:0)

由于 node-sass 和 node 版本 16 之间的兼容性问题,这个问题在 2021 年 4 月再次出现。(I had similar problems here 并在 here 下方提供类似的答案)。

所以我的解决方案是降级 node,直到版本 16 完全兼容。

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

那么:

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

其他有用信息:

答案 7 :(得分:-1)

试试这个:NODE_ENV=development yarn install