(React on Rails)引擎“节点”与此模块不兼容。预期版本“...”

Posted

技术标签:

【中文标题】(React on Rails)引擎“节点”与此模块不兼容。预期版本“...”【英文标题】:(React on Rails) The engine "node" is incompatible with this module. Expected version "..." 【发布时间】:2018-04-10 22:40:31 【问题描述】:

对于那些熟悉 react-on-rails gem,或者更一般地说,yarn:

就在今天,我通过 Homebrew 将我的 Node 版本更新为 8.8.1。现在,当我尝试运行 bundle && yarn && foreman start -f Procfile.dev(或只是安装 yarn)时,我收到以下消息:

error react-webpack-rails-tutorial@0.0.1:引擎“节点”是 与此模块不兼容。预期版本“5.10.0”。

错误发现不兼容的模块

信息 访问https://yarnpkg.com/en/docs/cli/install 获取文档 关于这个命令。

这可能是我遇到的一个非常简单的问题,但经过几个小时的调试后我无法修复它。

我尝试将 package.json 中的 Node 版本手动更新为我的计算机上的版本(似乎没有生效),通过 Homebrew 将我的版本降级到 5.10.0(但无法),甚至升级到最新版本的 gem 也意味着安装 webpack。

无论我做什么,我的本地服务器启动 (bundle && yarn && foreman start -f Procfile.dev) 仍然导致上述相同的错误。对这个可怜的灵魂有什么想法吗?

【问题讨论】:

【参考方案1】:

您需要更新您的 Node.js 版本。尝试

    清除 NPM 的缓存:

sudo npm cache clean -f

    安装一个名为“n”的小助手

sudo npm install -g n

    安装最新的稳定 Node.js 版本

sudo n stable

【讨论】:

【参考方案2】:

对于遇到同样问题的任何人,我还没有找到根本问题的解决方案,但我找到了临时解决方法。

简单运行

bundle && yarn --ignore-engines && foreman start -f Procfile.dev

而不是

bundle && yarn && foreman start -f Procfile.dev

我希望这可以帮助那些可能发现自己陷入同样境地的人!

【讨论】:

【参考方案3】:

我给你这个react-webpack-rails-tutorial github page做的检查清单

基本演示设置

    确保您已安装 Node!我们建议使用 nvm,节点版本为 v6.0 或更高版本。请参阅这篇文章更新和使用 nvm。

    git clone git@github.com:shakacode/react-webpack-rails-tutorial.git cd react-webpack-rails-tutorial

    检查您是否拥有 Ruby 2.3.0 或更高版本 检查您使用的节点版本是否正确。运行 nvm list 进行检查。使用 5.5 或更高版本。 检查您是否安装了 Postgres。运行要检查的 postgres。 使用 9.4 或更高版本。 检查您是否安装了 qmake。运行 which qmake 来检查。如果 缺少,请按照以下说明操作:安装 Qt 和编译 水豚-webkit 检查您是否安装了 Redis。运行 which redis-server 到 查看。如果缺少,请使用 Homebrew (brew install redis) 或 按照这些说明进行操作。 捆绑安装 brew 安装纱线 纱线 rake db:setup 工头启动-f Procfile.hot 为 Rails 应用打开浏览器选项卡以 http://localhost:3000 热重载示例 尝试以下热重载步骤! 工头启动-f Procfile.static 为 Rails 应用打开浏览器选项卡以 http://localhost:3000 示例。 进行更改时,必须刷新浏览器页面。

【讨论】:

嗨法布里齐奥,感谢您的建议。不幸的是,在教程和初始安装之后很久就遇到了这个问题。它似乎只在通过 Homebrew 升级节点版本后出现!

以上是关于(React on Rails)引擎“节点”与此模块不兼容。预期版本“...”的主要内容,如果未能解决你的问题,请参考以下文章

错误 eslint@5.6.0:引擎“节点”与此模块不兼容。尝试创建反应应用程序时

引擎“节点”与此模块不兼容

引擎“节点”与此模块不兼容。预期版本“X.X.X”。得到“X.X.X”

Ruby on Rails 用户管理引擎/框架? (带网页)

如何使用 react_on_rails 的 Redux API 为商店补充水分?

当通过 NVM 安装 NPM 时,Capistrano 部署失败并出现 react_on_rails