【问题标题】:How can I use bootstrap in react with rails我如何使用引导程序与导轨反应
【发布时间】:2018-09-06 02:54:55
【问题描述】:

我尝试过使用 npm 包reactstrap。 我的组件:

import { Col, Button, Form, FormGroup, Label, Input, FormText } from 'reactstrap';

我收到以下错误:

ExecJS::ProgramError at /dir/xyz
TypeError: require is not a function

【问题讨论】:

  • 你是用 npm 安装的吗?
  • 是的。包现在在我的 node_modules 中。

标签: ruby-on-rails reactjs sprockets reactstrap


【解决方案1】:

webpacker-gem 是采用 react + rails 的方式,而不是 sprockets,这对于 jQuery 风格的 JS 来说是可以的,但对于基于 ES6 的复杂堆栈来说就不行了。

来自自述文件:

要将 Webpacker 与 React 结合使用,请使用 --webpack=react 选项创建一个新的 Rails 5.1+ 应用:

# Rails 5.1+
rails new myapp --webpack=react

(或在已经使用 Webpacker 设置的现有 Rails 应用程序中运行 bundle exec rails webpacker:install:react)。

安装程序将使用 Yarn 添加所有相关的依赖项、对配置文件的更改以及一个示例 React 组件到您的项目中的 app/javascript/packs,以便您可以立即尝试使用 React。

请注意,从那时起您将使用 yarn,而不是 npm。

【讨论】:

  • 我们现在正在使用链轮。但是如果我们没有找到任何解决方案,使用 sprockets,我们将转向 webpacker。
  • Webpacker 处理了很多你需要拥有的东西,而 sprocket 根本无法提供:摇树(删除你的应用程序未导入的所有模块);正确的 babel 集成(有一个 sprockets-es6 项目,但它已经过时了)。我不是 Webpacker 的忠实粉丝,也喜欢 Sprockets 的简单性,但 Sprockets 根本不够先进,无法处理现代 JS 框架带来的混乱。
  • 谢谢@murb。现在,我使用了 webpacker。它正在使用一个新的应用程序。但是当我在我现有的应用程序中使用它时,会出现错误:Security warning: an embedded <script> tag on another site requested protected JavaScript 和控制台中的Page not found for: /packs/hello_react-d061dc84049eca53c1a2.js from IP:(127.0.0.1)
  • 这是因为 webpacker 在 public 和 app/assets 目录下编译资产吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-14
  • 1970-01-01
  • 1970-01-01
  • 2015-04-07
  • 1970-01-01
相关资源
最近更新 更多