バックエンドにはsails.jsを、フロントエンドにはAngularJSを利用できるアプリを開発しています。 Angular Yeoman-angular generator https://github.com/yeoman/generator-angular 、フロントエンドロジックが完了したら、次を使用してセールアプリを作成します。
そして、すべてのAngularJSファイルをSailsフォルダーに転送します。
ただし、AngularJSが作成するのは、次のようなフォルダー階層を作成することです https://github.com/rishy/angular-jade-stylus-seed 以降「grunt server」を実行すると、最終製品版を含む「dist」フォルダーが作成されます。
一方、「sails new app」の後には、sailsアプリのフォルダー階層が似ています。
だから、私の質問は:
現在、AngularJSとSailsJsが大流行しているため、多くの人がこの同様の問題に直面していると思います。 AngularJS + SailsJSアプリを作成するための堅牢なボイラープレートが必要ですが、残念ながら今はありません。
Sailsは純粋にバックエンドのフレームワークであり、Angularは純粋にフロントエンドであるため、うまく連携できます。 Angularジェネレーターを組み込むと少し混乱する可能性がありますが、 Angular Seed アプリとSails v0.10から始める場合の基本的な手順は次のとおりです。
sails new myApp
を使用して新しいSailsアプリを作成しますmyApp/assets
フォルダーの内容を消去しますapp
フォルダーの内容をmyApp/assets
にコピーしますmyapp/views/layout.ejs
の内容をAngular Seed app/index.html
ファイルの内容に置き換えますlayout.ejs
ファイルからすべての非スクリプトタグコンテンツ(<body>
タグの後、最初の<script>
タグの前のすべてをカットし、それを使用してmyApp/views/homepage.ejs
のコンテンツを置き換えます。<%-body%>
の<body>
タグの後にlayout.ejs
を配置しますその後、sails lift
を使用してサーバーを起動すると、http://localhost:1337
にAngularアプリが表示されます。
これをGithubに置いてください を参照してください。
このメソッドを使用すると、Gruntfileに対して何もする必要がなく、grunt server
を呼び出すことはありません。これは、テストサーバーでAngularアプリをテストするためだけのものです。セイルに置き換えます。フロントエンドアセットが変更されると、それを監視および同期するSailsのgrunt-syncタスクの利点を引き続き利用できます。
Yeoman Angularジェネレーターを本当に使用する場合は、Sailsアプリのassets
フォルダーにアプリを直接生成し、そのフォルダー内からジェネレーターコマンドを使用してみてください。以前は使用していなかったので、distフォルダーの用途はわかりませんが、インストールするすべてのノードモジュールがテストWebサーバーをサポートするために存在するようです(これも必要ありません。 Sails)とテストスイート(常にNice)があります。私が見ることができる唯一の問題は、Yeomanが生成するGruntfileのタスクのいくつかが必要かどうかです。 Sailsは(プロダクションモードで)少ないコンパイルとCSSミニフィケーションを処理しますが、JadeやStylusでは何もしません。したがって、本当に必要な場合は、これらのタスクをSails Gruntfileに追加する必要があります。
あなたの質問こそが、私がSailngを作成した理由です。 https://github.com/ryancp/sailng これは、最新のSails 0.10.0-rc5を使用するexample/boilerplateアプリケーションです。
また、Sails内でsocket.ioを使用して、Ajaxポーリングなしでリアルタイムの更新をクライアントに提供する方法も示します。
クローンを作成し、指示に従ってSailsとAngularを一緒に使用する方法のより良いアイデアを取得します。
また、Sails.js + Angularのサンプル「定型/例」アプリも作成しました。私のソリューションでは、これらはバックエンドとフロントエンド(2台のサーバー)に分離されています。
私のソリューションは、ユーザー間のデータ内でのソケット通信とライブ更新も示しています。
試してみてください。 https://github.com/tarlepp/angular-sailsjs-boilerplate
私はあなたと同じようなユースケースを持っています。 Yeomanを使用して、angularjsのプロジェクト構造を生成しました。この状況で、私の解決策は次のとおりです。
Sails.jsプロジェクトのroutes.jsで、ビューの構成コードを削除します。
「/」:{ビュー:「ホームページ」}
Sails.jsビューおよびアセットフォルダーの下にあるすべてのファイルを削除します。ただし、すべてを削除する前に、アセットフォルダーにファイルが必要ないことを確認してください。
縮小されたanglejs Webサイトをアセットフォルダーにコピーアンドペーストします。
Sails.js(セールリフト)を起動すると、angular localhost:1337のWebサイトを閲覧できます
Sails.jsはこのメソッドについても簡単に言及しました http://sailsjs.org/documentation/concepts/views
デフォルトのタスクを設定して、angular distフォルダーを.tmpにコピーする必要があります
このタスクの設定を参照してください Sails Angular プロジェクト