Nov*_*ice 6 ruby-on-rails npm ace-editor reactjs react-rails
我试图在我的Ruby on Rails应用程序中使用Ace编辑器,并且大部分视图构成为React组件。我使用的是react-rails宝石,根本不使用助焊剂。
我找到了此react-ace软件包,但必须使用npm进行安装。我已经能够使Bower组件与bower-rails gem一起工作,但从未使用过npm软件包。有没有办法仅通过资产管道(通过供应商)使用此方法?
顺便说一句,我没有使用browserify或ES6,所以我什至没有import。到目前为止,我一直在通过资产管道进行所有操作。
谢谢!
要使用资产管道将npm软件包包含在rails项目中,请执行以下操作:
初始化您的package.json:
npm init
添加node_modules到您的资产路径:
module YourApp
class Application < Rails::Application
config.assets.paths << Rails.root.join('node_modules')
确保npm install在启动时运行:
在config/initializers/npm.rb:
system 'npm install' if Rails.env.development? || Rails.env.test?
安装您的软件包:
npm install YourPackage
从application.js链接到您的包
//= require /Path/To/YourPackage
简而言之,ACE 编辑器是为在 Node.js 而不是 Rails 中运行而构建的,因此没有简单的方法可以做到这一点。请记住,大多数npm包旨在用作在 Node.js 环境上运行的服务器端 JavaScript,并且不能直接在 Ruby 中运行。我相信 Ace Editor 需要 Node.js 后端,并且我怀疑让它在 Rails 后端运行会很简单。
当然,任何在浏览器中运行的 JavaScript 都可以集成到 Rails 资产管道中。为此,我建议查看 Bower,它是最常用的包管理系统 ( http://bower.io )。您可以直接在 Rails 应用程序中安装,但我建议您查看 Bower Rails,以便更好地与 Rails 约定和资产管道集成https://github.com/rharriso/bower-rails。
如果您想尝试将与平台无关的 javascript 移植到浏览器,您可以查看 browserify,它只是使用requireNode.js 使用的 CommonJS 格式链接 javascript 文件。然而,它不会神奇地使服务器端 JavaScript 框架(如 Express 或 ACE 编辑器)仅在浏览器中工作。
| 归档时间: |
|
| 查看次数: |
5853 次 |
| 最近记录: |