Sails js – Crée une copie des actifs

Nous envisageons de porter notre projet sur Sails.js. Nos actifs statiques sont assez volumineux – plus de 3 Go. Donc, cela a créé une limitation sérieuse car il double la taille de notre application. Pouvons-nous modifier Sails js pour empêcher ce comportement par défaut ou peut-on recommander un autre framework?

Sails utilise Grunt pour copier vos ressources dans (par défaut) un dossier .tmp / public propre à chaque levée de l’application. Cela vous permet de choisir quels actifs doivent être rendus publics, ainsi que de comstackr et de minimiser les actifs dans différents environnements. Cela ne double pas nécessairement la taille de votre application, à moins que vous ne mettiez .tmp sous contrôle de version, mais si vous avez beaucoup d’actifs, cela peut certainement ralentir le démarrage de votre application.

La solution la plus simple consiste à désactiver Grunt et à servir vos actifs statiques directement à partir du dossier des actifs . Pour faire ça:

  1. Supprimez le fichier Gruntfile.js (ou renommez-le en fichier Gruntfile.js.bak ).
  2. Créez un nouveau fichier de configuration appelé config / assets.js (ou ce que vous voulez; le nom n’a pas d’importance), et mettez le texte suivant à l’intérieur:

    module.exports = { paths: { public: __dirname+"/../assets" } }; 

La raison pour placer cela dans un nouveau fichier de configuration plutôt que dans config / local.js est que local.js est dans votre fichier .gitignore par défaut. Ainsi, si vous utilisez Git pour le contrôle de version, vous devrez le recréer chaque temps que vous installez l’application sur une nouvelle machine.

Comme je l’ai dit, c’est la solution la plus simple, mais elle présente certains inconvénients:

  • Plus de compilation / minisation automatique des actifs en mode production
  • Plus de liaison automatique des fichiers Javascript / CSS à l’aide du pipeline d’actifs

Si vous souhaitez conserver ces fonctionnalités, tout en évitant de copier de nombreux fichiers dans .tmp , vous devez alors modifier les tâches Grunt par défaut (c’est ce qu’elles sont dans votre projet!).

Dans Sails.js 0.11, vous pouvez simplement append le code suivant au fichier .sailsrc:

 "crochets": {
  "grunt": faux
 }