Rails升级到angular度2
我想升级我现有的Rails和Angular 1.x应用程序。 我正在按照ng升级文档 ,看到有很多依赖包括systemjs , 打字稿 , tsd和一些其他的JavaScript库。 理想情况下,将有一个angular度2的gem,将有所有的依赖,但我无法find。 接下来,我查找每个依赖关系的gem,但没有一个tsd。
切换到自定义构build策略是否有意义,这样我可以使用npm进行JavaScript包pipe理? 我读这篇文章,build议大家,但我喜欢资产pipe道的便利。
任何人都可以指向成功使用rails项目ng-upgrade的例子吗? 它是否使用像gulp一样的定制构build解决scheme还是使用资产pipe道?
我的主要build议是没有升级到Angular2,仍然在开发中,你会遇到很多这样的问题,如没有find一个轨道的gem。
无论如何,目前,angular2 不能编译链轮 (默认导轨pipe道),所以你真的想要一个自定义的解决scheme。
我的主要build议是使用webpack,其他选项是browserify或gulp(和其他),这主要是一个品味的问题。 总的来说,为angular2configuration一个stream水线是非常复杂的 ,你必须通过types来处理.d.ts
文件(这是tsd
的更新版本,现在已经被弃用了),你必须通过tsc
或者通过babel
如果你想使用async / await(这真的很酷)。 你将失去像在image_path
类的轨道引用文件的能力,使用自定义pipe道,所以你也要考虑到这一点。
Typescript比简单的coffeescript文件编译起来要复杂得多,你依赖于它引用的每一个其他文件,因为它需要编译检查它,不要期望一些简单的东西。
这就是说,如果你真的想要使用Rails和Angular(2或者不),处理它的正确方法是有两个单独的项目 ,一个只有Rails应用程序,另一个使用AngularJSpath。 通过这种方式,您可以单独关注,您可以在不影响Rails的情况下为Angular2创build自定义pipe道,并且您将被强制使用Rails作为JSON API来正确编写Angular2应用程序。
我的解决scheme是保持尽可能简单,而不使用webpack或资产pipe道。 我把public
的ts
文件和configuration的rails通过pipe道服务npm资产。
我用这个结构搭build了一个启动项目,例如: https : //github.com/jonnysamps/rails-ng2-starter
在许多方面,它有单独的后端/前端项目的好处,但保持所有的代码在一起。
使用angularjsgem
gem 'angularjs-rails', '~> 1.4', '>= 1.4.8'
插入到application.js中
//= require angular
你可以使用http://bower.io/#install-bower ,你可以添加两个文件到你的rails应用程序.bowerrc
和bower.json
,就像GemFile