Publier une application VueJs sur github

DFaveris
6 min readDec 27, 2020

--

Ce tuto est la deuxième partie d’une série.

Si vous souhaitez apprendre comment créer une application portfolio basée sur Solid avec VueJs, jetez un oeil là https://dfaveris.medium.com/portfolio-comment-cr%C3%A9er-une-application-web-portfolio-bas%C3%A9e-sur-solid-avec-vue-js-c57b50502d21
Et pour savoir comment visualiser le portfolio et les images postées, c’est ici https://dfaveris.medium.com/portfolio-2-cr%C3%A9er-la-page-de-pr%C3%A9sentation-du-portfolio-2aad0304d6ad

le résultat https://scenaristeur.github.io/portfolio/ (en cours de construction actuellement)

Lorsque l’on développe des applications web, il est toujours utile de pouvoir les héberger ;-)

L’une des solutions est de publier son code sur https://github.com et d’utiliser les pages statiques gh-pages pour publier une version compilée (build) de son application. Nous allons voir ici comment publier une application Vuejs comme le portfolio basé sur Solid

Vous aurez besoin d’installer GIT sur votre machine : https://git-scm.com/downloads

On considère ici que vous avez créé une application web en local sur votre ordinateur et que vous voulez la rendre disponible sur le web.

On va donc commencer par créer un dépôt ou repository sur github du même nom que le dossier dans lequel nous avons créé notre application en local, pour notre exemple, le nom du dépôt sera ‘portfolio’

Si vous n’avez pas de compte github, créez en un (ça ne devrait pas être trop compliqué), ensuite, sur la page d’accueil créez un nouveau dépôt en cliquant sur le bouton vert “NEW”

Sur la page “Create a new repository”, dans ‘Repository name’ indiquez ‘portfolio’, laissez la visibilité en “Public”, cochez “Add a README file” et “Add .gitignore” et selectionnez “Node” pour le .gitignore template. Cliquez sur le bouton vert “Create repository” pour créer votre dépôt.

Ceci va vous créer un dépôt à l’adresse https://github.com/[votre-nom-d-utilisateur]/portfolio tel que celui-ci

Tant que vous êtes ici, récupérez l’adresse du dépôt en cliquant sur le bouton vert code, puis sur le bouton clipboard au bout de la ligne de l’url (on en aura besoin dans la prochaine étape, pour moi, vous devriez avoir un truc du style https://github.com/[votre-nom-d-utilisateur]/portfolio.git

Une fois que le dépôt est créé sur github, on va initialiser notre dépôt local, c’est à dire le dossier /portfolio de notre ordinateur, là où on a créé notre application. Rendez-vous dans votre dossier /portfolio et tapez les commandes suivantes (remplacez https://github.com/scenaristeur/portfolio.git par l’url de votre dépôt)

git init
git add .
git commit -m "premier commit"
git remote add origin https://github.com/scenaristeur/portfolio.git

Vous pouvez vérifier avec la commande

git remote -v

La dernière étape pour publier votre code vers votre dépôt est la commande

git push origin main --force

NB : précédemment on utilisait master au lieu de main, c’est un changement récent sur github. le paramètre — — force est nécessaire car nous avions déjà un fichier README.md sur notre dépôt local et nous remplaçons celui sur le dépôt distant.

https://spoggy-test6.solidcommunity.net/public/blog/images/git-push.png

Si tout se passe bien, votre code devrait maintenant être en ligne sur votre dépôt github distant

Construction de l’application

Bien notre code est maintenant sur github. Nous devons maintenant construire notre application (dans le dossier /dist) et l’envoyer sur une nouvelle branche (gh-pages)

D’abord vous devez supprimer ou commenter avec un dièse la ligne /dist présente dans le fichier .gitignore, pour que ce dossier soit publié sur github.

https://spoggy-test6.solidcommunity.net/public/blog/images/gitignore.png

Nous allons créer une première construction de notre application depuis la ligne de commande avec la commande

npm run build
https://spoggy-test6.solidcommunity.net/public/blog/images/build.png

Nous devons ensuite ajouter ce dossier et créer un nouveau commit

git add dist -f && git commit -m "Initial dist subtree commit"

Les dernières commandes vont nous permettre d’ajouter tous les fichiers, de publier le dossier /dist , de l’utiliser pour créer un subtree (sous-arbre) et de l’envoyer sur une branche nommée gh-pages

git add . && git commit -m "ajout de dist"
git push --set-upstream origin main
git subtree push --prefix dist origin gh-pages

Si tout est OK, vous devriez voir apparaître votre dossier /dist sur votre dépôt distant

Ne vous inquiétez pas, nous avons presque fini. Profitez-en pour cliquer sur le bouton des branches “main” pour voir si votre branche “gh-pages” a bien été créé

Pour terminer, cliquez sur l’onglet “Settings”

Vérifiez en descendant dans cette page que la fonctionnalité Github-pages prend bien en compte la branche gh-pages

Comme indiqué, votre site est maintenant accessible à l’adresse https://[votre-nom-d-utilisateur].github.io/portfolio/ pour moi, c’est https://scenaristeur.github.io/portfolio/

Mais si vous vous y rendez vous n’aurez qu’une page blanche, & de beaux messages d’avertissement dans la console JavaScript…

Il nous reste encore quelques réglages… Vous voyez dans la console que l’application cherche ses fichiers directement à la racine du site, par exemple https://scenaristeur.github.io/js/chunk-vendors.c252531d.js or notre site est à l’adresse https://scenaristeur.github.io/portfolio/ donc nous devons dire à webpack d’utiliser un PublicPath en production.

Pour ce faire, il suffit de créer à la racine de notre application un fichier vue.config.js avec le code suivant qui export une variable publicPath qui prend la valeur ‘/portfolio/’ si on est en mode ‘production’ ou la valeur ‘/’ sinon

const publicPath = process.env.NODE_ENV === 'production' ? '/portfolio/' : '/'module.exports = {
publicPath: publicPath,
}

Maintenant, nous pouvons reconstruire notre appli (build) et réutiliser toutes les commandes git pour publier notre code sur la branche main, et le dossier /dist sur la branche gh-pages, mais on peut automatiser ceci en ajoutant à notre fichier package.json deux lignes : (n’oubliez pas d’ajouter une virgule à la fin de la ligne précédente, sinon ça ne marchera pas)

"git": "npm run build && git add . && git commit -m",
"postgit": "git push && git subtree push --prefix dist origin gh-pages"

On peut alors tout faire (build et publication) avec une seule ligne de commande :

npm run git -- "ajout du publicpath"

Au bout de quelques minutes maximum, github devrait avoir mis à jour votre application et vous devriez pouvoir enfin la trouver à l’adresse https://[votre-nom-d-utilisateur].github.io/portfolio/ (pour moi, c’est https://scenaristeur.github.io/portfolio/)

  • TODO: réglages pour le routage..

--

--

DFaveris

main Project : "un robot qui range ma chambre" robot that tidy my room. Working on "how can robots share informations ?" how can we tell them what we want...