2017-03-16 1 views
1

J'utilise Mix (cela s'applique également à Elixir) pour gérer mes ressources frontales. J'ai Mix configuré pour les fichiers de version en production mais pas en dev. En tant que tel, lorsque je mets à jour les actifs, je suis mis à jour app.js et app.css fichiers dans les fichiers dev et app.{hash}.js et app.{hash}.css en production.Comment gérer les ressources frontend avec laravel mix et git?

Quels sont vos conseils sur la façon de tirer parti de cela avec le contrôle de version?

  1. Mettre les fichiers sous le contrôle de version? Si oui, comment puis-je gérer les changements constants pendant le développement? Continuez d'ajouter de nouveaux fichiers hachés? Est-ce que je laisse app.js et app.css sur le serveur de production?
  2. .gitignore les fichiers js et css et d'exécuter npm sur le serveur de production pour compiler les actifs localement?
  3. Une autre solution?

Quelle est votre opinion à ce sujet?

Merci d'avance.

Répondre

0

application de réécriture. {Hash} .js à app.js avec nginx et ajouter son à gitignore

+0

Mon problème n'est pas au niveau du serveur web c'est de savoir comment gérer les fichiers localement avec git. Mon instinct me dit que compiler les actifs en production est une mauvaise idée mais devoir supprimer/ajouter de nouveaux fichiers après avoir compilé des assets est un pita. –

4

A mon lieu de travail, nous avons .gitignore'd les dossiers css/js pour près d'un an pour différents projets aucun problème ne laissant simplement le serveur gérer npm dans le cadre de son étape de construction. Et si vous utilisez du fil, cela créera un fichier de verrouillage qui vous garantira les mêmes dépendances js sur la production. Lors de l'utilisation de la gestion des versions, il suffit d'utiliser l'assistant de mixage() sur vos balises script/css et de gérer le pointage vers le bon fichier via le fichier mix-manifest.json dans le répertoire public.

Par exemple:

layout/app.blade.php a

<script src="{{ mix('js/app.js') }}"></script>

lorsque vous exécutez mix NPM crée le public/fichier mix-manifest.json comme si

{ "/js/app.js": "/js/app.{hash-example}.js" }

Le seul problème que j'ai vu est avec le mélange et en utilisant l'aide mix() il apparaît pour fonctionner seulement pendant que npm watch est en cours d'exécution, ce qui est quelque chose d'élixir manipulé bien avant mais le mélange est relativement nouveau afin qu'il puisse être adressé, je n'ai pas été ennuyé assez pour le regarder puisque pendant le développement je cours toujours npm run hot sur tout changement de fichier js. - Edit: cela semble être corrigé maintenant

+1

Merci pour votre réponse, cela a aidé. Vous voulez savoir une chose, est-ce que 'mix-manifest.json' devrait être commis à git? –

+1

Cela peut être le cas, mais il n'y a pas grand chose à faire si vous ".gitignore" les dossiers/js et/css. Sachez simplement que l'exception sera rapide si elle ne trouve pas le fichier 'mix-manifest.json' et que cela servira de rappel pour lancer npm. Cela fait toujours trébucher certains membres de notre équipe. –

+1

J'ai compris. Merci mec! –