Bonjour à tous,
je travail avec un serveur linux pour le dev avec des outils comme nodejs, bower, gulp..etc. Et j'aimerais connaître votre process de déploiement sur un serveur mutualisé. J'utilise bower pour gérer mes dépendences et du coup je me retrouve juste avant la phase de déploiement avec un dossier nodejs généralement accompagné de gulp et bower et un dossier bowercomponents rempli de différent paquets. Mon process est le suivant : je déplace le dossier bowercomponents en dehors du dossier nodejs et je déploie le site sans celui-ci. Ce qui me gêne c'est quand je suis amené à faire des modifications sur un site, l'arborescence entre le serveur de dev, et le mutualisé n'est pas la même.

9 réponses


brokleen
Auteur
Réponse acceptée

Du coup après pas mal de recherches et de tests j'ai trouvé une solution intéressante pour bower.
Il existe un plugin gulp main-bower-files qui inspecte le fichier bower.json et récupère les dépendances utilisés pour le projet. Il extrait uniquement le fichier contenu dans la valeur "main" de chaque fichiers bower.json propre à chaque dépendances. Couplé avec le plugin gulp-filter qui permet de filtrer par type de fichier on peux rapidement s'organisé.
Au final voilà mon organisation :

  • Un dossier dev-assets contenant tous les fichiers sass, coffee, js ... etc non complié, non fusionné, non compréssé.
  • Un dossier assets contenant :
    • un fichier lib.js ( fusion de toutes les dépendances bower js )
    • un fichier app.js ( Js maison )
    • un fichier style.css (fusion de tous les fichiers sass)
    • un dossier img

Merci pour vos idées et conseils.

Petite apparté, je ne connais pas ton hebergeur mais sur un mutualisé node.js c'est pas forcément possible, sauf sur certain type d'hebergeur mais ce n'est pas encore courant.

Enssuite, moi perso, avec gulp je me créer un dossier dist ou j'ai mes JS fusionné et minifié, mes CSS fusionné et minifié, mon HTML ou PHP celon le type de site et toutes mes dependances réorganisées comme il faut pour le deploiment. Et enssuite je deploie juste mon dossier Dist.

Enssuite pour mes modifications, elles se font sur le serveur directe, mon IDE (webstorm ou phpstorm celon le type de site) est configuré pour travailler en serveur distant.

Travaillant sur des VPS le plus souvent, j'ai git d'installé et je fait un pull de ma branche dev master sur ma branche prod master pour faire les deploiments finaux

A priori, à l'instar de l'hebergeur francais Gandi, on trouve DigitalOcean qui a ouvert un hosting nodejs à frankfurt, mais pour installer un serveur qui fait tourner les applis nodejs, J'ignore comment faire sur un dédié du style kimsuffi (filiale ovh) ou un vps.

Ben simplement, tu installe node sur ton serveur et tu lance ton serveur node de ton app ou site

brokleen
Auteur

La question n'est pas de savoir si nodejs est disponnible en mutu je voulais juste connaître des process de déploiement.

Oui, j'avait compris, c'etait juste une remarque hein ;-)
je t'ai expliqué apres mon process de deploiment

brokleen
Auteur

Merci pour ta réponse, par contre j'aimerais que tu développes cette partie "toutes mes dependances réorganisées comme il faut pour le deploiment". Justement c'est ce point qui m'intéresse vraiement, comment tu organises tes dépendances. J'ai mis en dessous un exemple de page html pour mieux visualiser l'organisation.

<!DOCTYPE html>
<html>
<head>
    <title>Title of the document</title>
    <script type="text/javascript" src="/bower_components/jquery/jquery.js"></script>
    <script type="text/javascript" src="/bower_components/fontawesome/fontawesome.js"></script>
    <script type="text/javascript" src="/bower_components/velocity/velocity.js"></script>
    <link rel="stylesheet" href="/dist/style.css" type="text/css" />
</head>

<body>

</body>
<script type="text/javascript" src="dist/app.js"></script>
</html>

Mon process avec gulp :

* je recupère Jquery dans le dossier dist de jquery recupéré par bower
* je prend le css de font-awesome dans le dossier CSS et le dossier complets font
* je prend le js dans le dossier velocity

Je récupère tout ca, je les fusionnes dans un seul fichier css et un seul fichier js et je minifie le tous.

du coup j'obtiens 2 fichiers:

* Jquery, velocity, app dans un fichier dist.js
* font-awesome, bootstrap (si jamais je l'utilise), style dans un fichier dist.css

enssuite je créer un dossier dist qui contiendras toute ma partie à deployer avec:

* css minifier dans un dossier
* Js minifier dans un dossier
* mes fichier html 
* mon dossier img

Je deploie enssuite sur mon serveur via GIT ou FTP da depend du serveur du client.

intéressant le process pour un mutualisé. Sinon, pour le moment, je deploie mes applis nodejs avec modulus.io, c'est relativement simple mais plus cher à la longue si tu généres beaucoup de traffic. Mais a priori sur stackoverflow, les developpeurs disent qu'il ne deploient pas sur mutu, vps ou dédié, mais via d'autres hosting plus faciles à gérer et moins compliqués, je vous laisse lire et donner votre opinion par la suite : http://stackoverflow.com/questions/17529613/why-node-js-cant-run-on-shared-hosting