Conversation
thom4parisot
left a comment
There was a problem hiding this comment.
Bah c'est très bien comme code ! Si tu le comprends et que tu apprends en l'écrivant c'est encore mieux :-)
Je trouve que c'est un excellent moyen d'apprendre.
C'est d'autant plus une bonne idée que l'exemple initial ne rendait pas justice ni l'illustrait vraiment ce que fs-extra permet de faire.
Si je comprends bien tu veux :
- t'assurer que le répertoire
tmp/node-examplessoit créé à la racine du repo s'il n'existe pas ; - copier le contenu du répertoire d'exemples dans le dit-répertoire.
Le seul problème que je vois réside dans le fait que fs.ensureDir et rm sont asynchrones donc en pratique,rm peut se terminer avant fs.ensureDir.
Rien de méchant mais si tu veux respecter un ordre précis va falloir trouver un moyen de garantir que la copie s'exécute après fs.mkdirp.
Tu me dis et on essaiera de trouver une solution ensemble :-)
| const { join } = require('path'); | ||
| const fs = require('fs-extra'); | ||
|
|
||
| fs.copy(__dirname, '/tmp/nodebook-examples', (err) => { |
There was a problem hiding this comment.
L'intention initiale c'est de copier le répertoire contenant le script fs-extra.js dans /tmp/nodebook-examples.
| const fs = require('fs-extra'); | ||
|
|
||
| fs.copy(__dirname, '/tmp/nodebook-examples', (err) => { | ||
| const dirpath = join(__dirname, '..', '..', 'tmp', 'nodebook-examples'); |
There was a problem hiding this comment.
Du coup cette ligne change l'emplacement de copie.
Ce qui est un plus je pense car /tmp/nodebook-examples ne fonctionnerait pas sous Windows.
On est bien d'accord que tu veux copier vers la racine du repo ?
There was a problem hiding this comment.
oui, j'ai gardé la même logique que le script mkdirp
| @@ -1,9 +1,26 @@ | |||
| 'use strict'; | |||
|
|
|||
| const mkdirp = require('mkdirp'); | |||
There was a problem hiding this comment.
Vu que tu utilises fs.mkdirp, cette dépendance n'est plus nécessaire.
There was a problem hiding this comment.
oh merci, un bel exemple de cargo culte 😉
| } | ||
| }) | ||
|
|
||
| rm(dirpath, () => { |
There was a problem hiding this comment.
fs-extra contient une méthode .remove() qui rend l'inclusion de rimraf superflue.
There was a problem hiding this comment.
Top, je vais refactoriser ça.
|
Pour s'assurer de l'ordre, il faudrait une promesse qui retourne que le dossier a bien été crée et en cas de succès on copie le dossier ? |
|
@DirtyF c'est sûrement le plus propre oui – t'as un exemple dans la section Design Pattern : Promesses du chapitre 3, avec |
Le script d'origine n'était pas très explicite lorsqu'on le lançait en ligne de commande.
L'exemple pourrait être :
j'imagine que le code suivant peut-être amélioré, je débute en lisant les exemples du livre 😓