javascript - Rails 升级到 Angular 2

标签 javascript ruby-on-rails node.js angular

我想升级我现有的 Rails 和 Angular 1.x 应用程序。我正在关注 ng-upgrade documentation并看到有许多依赖项,包括 systemjs , typescript , tsd和其他一些 javascript 库。理想情况下,会有一个 angular-2 gem 具有所有依赖项,但我找不到。接下来,我为每个依赖项寻找 gem,但 tsd 没有。

切换到自定义构建策略以便我可以使用 npm 进行 javascript 包管理是否有意义?我读了this推荐 gulp 的文章,但我确实喜欢 Assets 管道的便利性。

谁能给我指出在 Rails 项目中成功使用 ng-upgrade 的示例?它是使用 gulp 之类的自定义构建解决方案还是使用 Assets 管道?

最佳答案

我的主要建议是尚未升级到 Angular2,仍在大量开发中,您将面临很多此类问题,例如找不到用于 Rails 的 gem。

无论如何,目前,angular2 不能用 sprockets(默认的 rails 管道)编译,所以你真的想要自定义解决方案。

我的主要建议是使用 webpack,其他选项是 browserify 或 gulp(以及其他),这主要是个人喜好问题。总的来说,为angular2配置管道很复杂,你必须通过typings来处理.d.ts文件(这是更新版本tsd 现在已弃用),如果你想使用 async/await,你必须通过 tsc 和可能通过 babel 转换你的 typescript (这真的很酷)。使用自定义管道,您将无法在 image_path 等 Rails 中引用您的文件,因此您也需要考虑到这一点。

Typescript 比简单的 coffeescript 文件编译起来要复杂得多,你依赖于它引用的每个其他文件,因为它需要对其进行编译检查,不要期望一些简单的东西。

话虽如此,如果您真的想使用 Rails 和 Angular(2 或没有),处理它的正确方法是拥有 两个独立的项目,一个只有 Rails 应用程序和一个与 AngularJS 路径。通过这种方式,您可以分离关注点,您可以在不影响 Rails 的情况下为 Angular2 定制管道,并且您将被迫使用 Rails 作为 JSON API 正确编码您的 Angular2 应用程序,正如您应该做的那样。

关于javascript - Rails 升级到 Angular 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34522294/

相关文章:

javascript - 我的 javascript/html 和 node.js 逻辑位于不同的服务器上 - 它们可以安全地交互吗?

css - 外部 css 中的 EJS 标签

javascript - 检测 Facebook 分享成功?

javascript - 从目录 (AD) 读取的 HTML 中删除电子邮件签名中的行

ruby-on-rails - 像维基百科一样生成目录,无需 JavaScript

ruby-on-rails - rails : Auto-login already signed up user (Facebook/linkedin omniauth)

javascript - 在 Rails 中将字符串传递给 slim 模板内的 javascript 脚本

node.js - 在只知道链接文本的情况下从 Nodejs 结果获取 URL 的最佳方法

javascript - jquery:隐藏表中的同级元素

javascript - 替代 HTML/Javascript 侧边栏小工具?