我一直在使用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
清理命令,但没有运气。
有趣的是,我仍然可以运行服务器,它是唯一抱怨的控制台。
答案 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
将其设置为全局默认值。
那么:
node --version
返回 14.x
(不是 16)spring stop
yarn.lock
rm -rf node_modules
删除现有的节点模块node --version
是否返回 14。如果它没有再次运行 nvm install 14
。yarn install
重新安装模块(如果节点 14 没有纱线,请使用 npm install --global yarn
安装)其他有用信息:
答案 7 :(得分:-1)
试试这个:NODE_ENV=development yarn install