3

私は単一ページ(Web)アプリケーションを構築しています。私はRails v5.0、特に組み込みのAPI機能にかなり嫌われています。Rails WebpackerまたはVue-CLI?

私はこれまで、Vue.jsを使用してJavaScriptフロントエンドを構築しました。これは通常Vue-CLI projectで提供されているテンプレートで行いました。これにより基本的にどこでも静的サイトVue component-basedの展開が可能になります。それは素晴らしい。

今や、Rails 5.1には、WebpackとYarn機能が組み込まれていて、かなり魅力的です。私は新しいアプリケーションをどのように進めるべきか分かりません。

私の質問:

  • Railsのバージョン5.1で利用可能なWebpacker拡張機能を使用して、Railsの自体にWebPACKのとVueの統合の長所/短所は何ですか? I Herokuに展開する予定です。
  • 一方、Rails API専用モードをバックエンドに使用し、Vue/Webpackベースのフロントエンドを独自のディレクトリに保守することの長所と短所は何ですか?すべて同じ リポジトリに保存し、Heroku経由のバックエンドとフロントエンドを 静的ホスト(Netlifyなど)経由でデプロイします。
  • どのアプローチが、より多くの認知的オーバーヘッドまたは技術的複雑性を有するであろうか?過去数日間に

、私は周りを探してきた、と私はこのことについて、ウェブ上の多くの簡潔な情報を見つけていませんでした。人々はRails開発環境の自動リロード機能に興味を持っているようですが、Vue-CLIを使用して既に無料で入手できます。

私の知る限り識別できるように、これらは別々にそれらを維持するための理由です:フロントエンドの

  • の展開はかなりくそ簡単などこかにあります。
  • RailsのWebpackerモードは非常に新しく、特に統合テストに関するチュートリアルやガイドはまだ多くありません。 の物を分けておくと、私の既存の検査装置は依然として になるはずです。

    • 、フロントエンドのために、おそらく将来的には、サーバ生成されたページの両方に静的な資産を使用する可能性べきであること:ここで

  • は、2つの部品を統合するためのいくつかの長所です が必要です。
  • Railsチームによる将来のメンテナンスを意味する "Rails方法"へのバイイング。
  • JS Frontendは別途ホストする必要はありません。
  • CORSを心配する必要はありません(?)のアプローチのいずれかのために存在する具体的な他のどのようなメリット

+1

コンパイルして公開Railsフォルダに保存できるので、別のフロントエンドの場合はjsフロントエンドを別々に保つ必要はありません。私は角度+レールのためにこれをやってきました。例:https://github.com/alexkojin/advicy。フロントエンドコードはdeploy.rbスクリプトで生成されます。 –

+0

@AlexKojinええ、私はそれについて考えていました。 Vue-CLIは 'dist'フォルダにコンパイルされますが、WebpackをRails' public'フォルダにポイントすることはできます。私はそれが水を濁すのではないかと心配していたので、この質問を残しました。ありがとう – allanberry

答えて

1

私が始めたとき、私は何とかそれが "想定されていた"ように見えたので、何とかウェブパッカーの方法で行った。あなたが言うように、ほとんど指針。 Webpacker(最新のノードに依存している)は、展開が複雑になり、開発も複雑になります。何の利益のために私は尋ねて、それを取り除いた。

私はvue from the cdnを使用しています。利点:近いユーザー

  • ほぼゼロインストールへ
  • 持っていることは容易DEV /生産バージョン

    ザ・

  • 私はレールのテンプレートへのアプリのコードを記述し、キャッシュされた

    • 。 hamlを使用して、実際にはruby2jsですが、javascriptをうまく使うことができます。それが私のやり方ですが、私はルビーが好きで、ルビコードは生成されたjsの半分のサイズですが、私は軌道に乗っています。

      テンプレートは「vue annoted」レールテンプレートです。 小さなコードもレールテンプレートに入ります。 より多くのコードをアセットで定義し、アプリから参照することができます。 xテンプレート構文を使用しても、コンポーネントにテンプレートを書き込むことができます。

      最後に、データはto_jsonによって直接テンプレートに転送できます。そして同じレンダリングで。追加クエリよりもはるかに高速です。 to_jsonが十分でないときは、必要なものを得るためにrablを使うことができます。

      私はそれを明確にしたいと思います。私はいくつかのvue-railsを書いている過程にあります。発見されることはほとんどないためです。 hereを参照してください(投稿が準備ができたらコメントします)

    関連する問題