Je développe une application qui peut utiliser sails.js pour le back-end et AngularJS pour le front-end. Je pensais que je créerais une application angulaire à l'aide du générateur Yeoman-angular https://github.com/yeoman/generator-angular , et une fois que j'aurais terminé avec la logique frontale, je créerai des voiles application utilisant,
Et puis je transférerai tous mes fichiers AngularJS dans le dossier Sails.
Mais le fait est que AngularJS crée crée une hiérarchie de dossiers comme celle-ci https://github.com/rishy/angular-jade-stylus-seed et lors de l’exécution de "grunt server", un dossier "dist" est créé et contient la version de production finale.
Par ailleurs, après la hiérarchie des dossiers "Nouvelle application", comme pour l’application Voiles.
Alors, mes questions sont:
Je pense que beaucoup de gens sont confrontés à ce problème similaire depuis AngularJS et SailsJs sont à la mode actuellement. Il devrait y avoir un passe-partout robuste pour créer une application AngularJS + SailsJS, qui manque malheureusement à l'heure actuelle.
Puisque Sails est un framework purement back-end et que Angular est purement front-end, ils peuvent bien fonctionner ensemble. Cela peut être un peu déroutant lorsque vous introduisez le générateur angulaire, mais voici les étapes de base si vous débutiez avec le Angular Seed app and Sails v0.10:
sails new myApp
myApp/assets
app
dans myApp/assets
myapp/views/layout.ejs
par celui du fichier angulaire Seed app/index.html
layout.ejs
(tout ce qui suit la balise <body>
et avant la première balise <script>
et utilisez-le pour remplacer le contenu de myApp/views/homepage.ejs
<%-body%>
après la balise <body>
dans layout.ejs
Vous pouvez ensuite démarrer le serveur avec sails lift
et vous verrez l'application Angular à http://localhost:1337
.
J'ai mis ceci sur Github pour référence.
En utilisant cette méthode, vous n'avez rien à faire avec le fichier Grunt, et vous n'appelez jamais grunt server
-- uniquement pour tester les applications Angular avec leur serveur de test, que vous remplacez par Sails. Vous bénéficierez tout de même de la tâche Sails Grunt-Sync qui surveille et synchronise vos ressources frontales au fur et à mesure de leur modification.
Si vous voulez vraiment utiliser le générateur Yeoman Angular, vous pouvez essayer de générer une application directement dans le dossier assets
de votre application Sails et d'utiliser les commandes du générateur à partir de ce dossier. Je ne l’avais jamais utilisé auparavant, donc je ne sais pas à quoi sert le dossier dist, mais il semble que tous les modules de nœuds qu’il installe sont là pour prendre en charge le serveur Web de test (ce vous avez des voiles) et la suite de tests (qui est toujours agréable). Le seul problème que je peux voir est si vous avez besoin de certaines tâches de ce fichier Grunt généré par Yeoman. Sails gère Moins de compilation et de minification CSS (en mode production), mais il ne fait rien avec Jade ou Stylus. Vous devez donc ajouter ces tâches au fichier Sails Gruntfile si vous en avez vraiment besoin.
vos questions sont exactement pourquoi j'ai créé Sailng: https://github.com/ryancp/sailng C'est un exemple d'application/boilerplate qui utilise la dernière version de Sails 0.10.0-rc5.
Il montre également comment utiliser socket.io dans Sails pour fournir des mises à jour en temps réel au client sans interrogation ajax.
Clonez-le et suivez les instructions pour avoir une meilleure idée de la façon d'utiliser Sails et Angular ensemble.
J'ai également réalisé un exemple d'application "boilerplate/example" pour Sails.js + Angular. Dans ma solution, ceux-ci sont séparés des côtés arrière et frontal (deux serveurs).
Ma solution illustre également la communication socket + les mises à jour en direct dans les données entre les utilisateurs.
N'hésitez pas à l'essayer. https://github.com/tarlepp/angular-sailsjs-boilerplate
J'ai un cas d'utilisation similaire au vôtre. J'ai utilisé Yeoman pour générer la structure de projet pour angularjs. Dans cette situation, ma solution est la suivante:
Dans le projet routes.js du projet sails.js, supprimez le code de configuration pour les vues:
'/': { voir: 'homepage' }
Supprimez tous les fichiers du dossier sails.js views and assets. Mais assurez-vous simplement que vous n'avez besoin d'aucun fichier dans le dossier des ressources avant de tout supprimer.
Copiez et collez le site Web minified angularjs dans le dossier assets.
Lancez sails.js (élévateur de voiles) et parcourez votre site Web angulaire à l'adresse suivante: 1337
Sails.js a aussi brièvement mentionné cette méthode http://sailsjs.org/documentation/concepts/views
Vous devez configurer la tâche par défaut pour copier le dossier dist angulaire dans .tmp
Voir la configuration des tâches dans ceci Sails Angular project