我想升级我现有的Rails和Angular 1.x应用程序。我正在关注ng-upgrade documentation,发现其中有许多依赖项,包括systemjs、typescript、tsd和其他一些javascript库。理想情况下,应该有一个angular-2 gem,它具有所有的依赖项,但我找不到它。接下来,我为每个依赖项寻找gem,但没有一个用于tsd。
切换到自定义构建策略以便我可以使用npm进行javascript包管理有意义吗?我读过this上推荐gulp的文章,但我确实喜欢资产管道的便利性。
有没有人能给我举一些在rails项目中成功使用ng-upgrade的例子?它是使用像gulp这样的自定义构建解决方案,还是使用资产管道?
发布于 2016-02-10 08:45:01
我的主要建议是还没有升级到Angular2,它仍然在大量的开发中,你会面临很多这样的问题,比如找不到适合rails的宝石。
不管怎么说,目前angular2 不能用链轮(默认的rails管道)编译,所以你真的想要一个定制的解决方案。
我的主要建议是选择webpack,其他的选择是煎饼或大口的(以及其他的),这主要是一个口味问题。总而言之,为angular2 配置一个管道是很复杂的,你必须通过typings (这是tsd的更新版本,现在已经被弃用)来处理.d.ts文件,如果你想使用async/await (这真的很酷),你必须通过tsc或者可能通过babel来转换你的打字脚本。您将失去使用自定义管道在image_path等rails中引用文件的能力,因此您也需要考虑到这一点。
Typescript的编译比简单的coffeescript文件复杂得多,你依赖于它引用的每个其他文件,因为它需要编译检查,不要期望简单的东西。
也就是说,如果你真的想使用Rails和Angular (2或更少),处理它的正确方法是让两个独立的项目,一个只包含Rails应用程序,另一个包含AngularJS路径。通过这种方式,您可以在不影响Rails的情况下为Angular2创建自定义管道,并强制您使用Rails作为JSON API来正确编写Angular2应用程序。
发布于 2016-04-22 02:15:47
我的解决方案是在不使用webpack或资产管道的情况下尽可能保持简单。我将ts文件放在public中,并配置rails通过管道为npm资产提供服务。
我以此结构为例创建了一个入门项目:https://github.com/jonnysamps/rails-ng2-starter
在许多方面,它的好处是拥有单独的后端/前端项目,但将所有代码放在一起。
发布于 2016-01-04 20:28:29
使用angularjs gem
gem 'angularjs-rails', '~> 1.4', '>= 1.4.8'在application.js中插入
//= require angularhttps://stackoverflow.com/questions/34522294
复制相似问题