Salut !
Actuellement je suis en train de travailler sur mon site perso Laravel 8 fourni avec Laravel Mix et donc Webpack.
Comme je suis en dev, je lance des npm install <package>
qui permet d’écrire les modules Node.JS dans le répertoire node_modules
de mon répertoire Laravel, quand ils sont renseignés dans le tableau devDependencies
et dependencies
du package.JSON
de Laravel. A noter qu’apparemment, comme Webpack est utilisé, toutes les dépendances sont renseignées dans devDependencies
. Pour compiler les assets, dont ces packages Node.JS, je lance le script suivant : npm run dev
, fourni par Laravel Mix. La conséquence c’est que le fichier public/app.js
contient donc les scripts des packages de devDependencies
si je ne m’abuse, non-minimifiés.
Quand je passerai tout ça en prod, je compte :
-
Minimifier les assets : le fichier
public/app.js
contiendra donc les scripts minifiés des packages non-devDependencies mais uniquement dependencies -
Et bien sûr faire en sorte que le répertoire de Laravel
node_modules
ne contienne que les packages renseignés dans le tableaudependencies
et nonðevDependencies
depackage.JSON
… c’est-à-dire aucun.
Ainsi dans l’idée il me faudrait lancer npm install --production
(https://stackoverflow.com/questions/9268259/how-do-you-prevent-install-of-devdependencies-npm-modules-for-node-js-package) puis npm run prod
pour minimifier.
Je voudrais savoir si des gens étaient eux aussi arrivés à ce workflow pour déployer leur site Laravel, dans le cas où j’aurais oublié ou mal compris au moins un truc. Notamment le fait que Webpack et Laravel Mix soient utilisés par Laravel ne pourraient-ils pas impacter ce workflow, en sus du script prod
que Laravel Mix fournit à disposition de npm dans laravel 8 ?
Je vous remercie d’avance ! Et vous souhaite une bonne fin de journée.
PS : sur certains sites, certains semblent dire qu’à cause de l’utilisation de Webpack, il n’y aurait pas besoin de renseigner quoi que ce soit dans dependencies
dans packages.JSON
mais bien uniquement dans devDependencies
… Oui mais pourtant lorsqu’on veut déployer un truc en prod, on ne veut justement PAS que les dépendences de développements soient installés et/ou minimifiées, n’est-ce pas ? (respectivement npm install (--production)
et npm run prod(/dev)
.
PS 2 : je dois préciser une chose assez importante. N’ayant pas accès au terminal de mon hébergeur Web, je dois envoyer le site par SFTP directement avec les assets des dépendances de prods minimifiées.