2015-12-30 15 views
38

既存のRailsとAngular 1.xアプリケーションをアップグレードしたいと思います。私はng-upgradeに従っていて、systemjs,typescripttsdなどいくつかの他のjavascriptライブラリを含む多くの依存関係があることを確認しています。理想的にはすべての依存関係を持つ2角形の宝石がありますが、それを見つけることはできません。次に、私はそれぞれの依存について宝石を探しましたが、tsdのものはありません。角度2にアップグレードするレール

javascriptパッケージ管理にnpmを使用できるようにカスタムビルド戦略に切り替えることは理にかなっていますか?私はギャルプを推奨するthisの記事を読んでいますが、私は資産パイプラインの利便性が好きです。

誰かがレールプロジェクトでng-upgradeを使用して成功例を指摘できますか?それはgulpのようなカスタムビルドソリューションを使用していますか、それともアセットパイプラインを使用していますか?

+0

なぜ角度を管理していないのですか?それはgulpとの依存関係ですか? https://viget.com/extend/gulp-rails-asset-pipeline – bbozo

答えて

-1

使用は宝石

gem 'angularjs-rails', '~> 1.4', '>= 1.4.8' 

あなたはhttp://bower.io/#install-bowerを使用することができますし、あなたがあるあなたのレールのアプリ.bowerrcbower.jsonに2つのファイルを追加することができますapplication.js

//= require angular 
+0

角度レールの宝石には 'ngUpgrade'パッケージはありません。不安定なオプションがありますが、これは角2のみです。https://github.com/hiravgandhi/angularjs-rails/tree/master/vendor/assets/javascripts – user2954587

-1

に挿入angularjs like GemFile

+0

Angular2はバワーをサポートしていません。 – thedanotto

+0

@ thedanotto:Angular2はBowerをサポートしています。 https://libraries.io/bower/angular2を参照してください。 – Suriyaa

+1

あなたの指示に従うと、Angular2SではなくAngularJSがインストールされます。このコマンドを使用して、bowerでAngular2をインストールすることができます。 'bower install angular2-build' https://groups.google.com/forum/#!topic/angular/vDQBKuf5HKY – thedanotto

10

私の主な提案はまだAngular2にアップグレードされていない、まだ開発が激しく、レールの宝石を見つけられないというような多くの問題に直面するでしょう。とにかく、現在、angular2 スプロケットしてコンパイルすることはできません

(デフォルトレールパイプライン)、あなたは本当にカスタムソリューションをしたいので。

私の主な提案はwebpackで、他のオプションはbrowserifyやgulp(その他)です。これは主に趣味の問題です。全体的に、angular2 のためのパイプラインを設定することは複雑である、あなたは(現在は非推奨されtsdの最新バージョンである)typings.d.tsファイルの世話をするために、あなたはtscを通じて、おそらくbabelを通して、あなたのtypescriptですがtranspileする必要がいる、あまりにもあればasync/await(本当にクールです)を使いたいと思っています。あなたは、image_pathのようなレールであなたのファイルを参照する能力を失うでしょう。カスタムパイプラインを使って、それも考慮に入れたいと思います。

Typescriptは単純なcoffeescriptファイルよりコンパイルする方がはるかに複雑です。コンパイルする必要があるため、他のすべてのファイルに依存しています。

実際にRailsとAngular(2またはそれ以上)で作業したい場合は、の2つの別々のプロジェクトを1つはRailsアプリで、もう1つはAngularJSパス。このようにして、Railsに影響を与えずにAngular2のカスタムパイプラインを作成することができます.RailsをJSON APIとして正しく使用することで、Angular2アプリケーションを正しくコーディングする必要があります。

0

私の解決策は、webpackやアセットパイプラインを使用せずにできるだけ単純にしておくことでした。私はtsファイルをpublicに入れ、パイプラインを通じてnpmアセットを提供するようにレールを設定しました。

私は、一例として、このような構造を持つスタータープロジェクトを設置:多くの点でhttps://github.com/jonnysamps/rails-ng2-starter

を、それは別のバックエンド/フロントエンドのプロジェクトを持つことの利点を持っていますが、一緒にすべてのコードを保持します。

関連する問題