我想升级现有的 Rails 和 Angular 1.x 应用程序。我正在关注 ng-upgrade文档 https://angular.io/docs/ts/latest/guide/upgrade.html并看到有很多依赖项,包括systemjs https://github.com/systemjs/systemjs, 打字稿 http://www.typescriptlang.org/, tsd http://definitelytyped.org/tsd/以及其他一些 JavaScript 库。理想情况下,会有一个 angular-2 gem 具有所有依赖项,但我找不到它。接下来,我为每个依赖项查找 gem,但没有找到 tsd 的 gem。
切换到自定义构建策略是否有意义,以便我可以使用 npm 进行 javascript 包管理?我读this http://blog.arkency.com/2015/03/gulp-modern-approach-to-asset-pipeline-for-rails-developers/推荐 gulp 的文章,但我确实喜欢资产管道的便利性。
谁能给我指出在 Rails 项目中成功使用 ng-upgrade 的示例吗?它使用像 gulp 这样的自定义构建解决方案还是使用资产管道?
我的主要建议是不要升级到 Angular2,它仍在大量开发中,您将面临很多此类问题,例如找不到 Rails 的 gem。
无论如何,目前,Angular2不能用链轮编译(默认的 Rails 管道),所以你真的want定制解决方案。
我的主要建议是使用 webpack,其他选项是 browserify 或 gulp (以及其他),这主要是个人喜好问题。总的来说,为 angular2 配置管道很复杂,你必须照顾.d.ts
文件通过typings
(这是更新版本tsd
现在已弃用),您必须通过以下方式转译您的打字稿tsc
并且可能通过babel
如果你想使用 async/await (这真的很酷)。您将失去在 Rails 中引用文件的能力,例如image_path
诸如此类,使用自定义管道,因此您也需要考虑到这一点。
Typescript 的编译比简单的 CoffeeScript 文件要复杂得多,您依赖于它引用的每个其他文件,因为它需要对其进行编译检查,不要期望有简单的事情。
话虽这么说,如果你真的想使用 Rails 和 Angular(或者不是 2),正确的处理方法是两个独立的项目,一种仅包含 Rails 应用程序,另一种包含 AngularJS 路径。通过这种方式,您可以分离关注点,您可以为 Angular2 建立一个自定义管道,而不会影响 Rails,并且您将被迫使用 Rails 作为 JSON API 来正确编码您的 Angular2 应用程序,正如您应该做的那样。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)