403 votes

Existe-t-il un moyen de construire automatiquement le fichier package.json pour les projets Node.js ?

Le fichier package.json est-il censé être édité manuellement ? Un programme comme npm ne pourrait-il pas simplement regarder les fichiers, voir les déclarations "require", puis s'en servir pour mettre les entrées nécessaires dans le fichier package.json ? Existe-t-il des programmes de ce type ?

596voto

Ore4444 Points 2584

Le fichier package.json est utilisé par npm pour en savoir plus sur votre projet node.js.

Utilice npm init pour générer les fichiers package.json à votre place !

Il est fourni avec npm. Lisez sa documentation ici : https://docs.npmjs.com/cli/init

Il existe également un outil officiel que vous pouvez utiliser pour générer ce fichier de manière programmatique : https://github.com/npm/init-package-json

204voto

nzondlo Points 1086

Tout d'abord, exécutez

npm init

...va vous poser quelques questions ( lisez d'abord ceci ) sur votre projet/package et génère ensuite un fichier package.json pour vous.

Ensuite, une fois que vous avez un fichier package.json, utilisez

npm install <pkg> --save

ou

npm install <pkg> --save-dev

...d'installer une dépendance et de l'ajouter automatiquement à vos package.json 's dependencies liste.

(Remarque : vous devrez peut-être modifier manuellement les plages de versions pour vos dépendances).

175voto

douyw Points 971

J'ai juste écrit un simple script pour collecter les dépendances dans ./node_modules. Cela répond à mes besoins pour le moment. Cela peut aider d'autres personnes, je le poste ici.

var fs = require("fs");

function main() {
  fs.readdir("./node_modules", function (err, dirs) {
    if (err) {
      console.log(err);
      return;
    }
    dirs.forEach(function(dir){
      if (dir.indexOf(".") !== 0) {
        var packageJsonFile = "./node_modules/" + dir + "/package.json";
        if (fs.existsSync(packageJsonFile)) {
          fs.readFile(packageJsonFile, function (err, data) {
            if (err) {
              console.log(err);
            }
            else {
              var json = JSON.parse(data);
              console.log('"'+json.name+'": "' + json.version + '",');
            }
          });
        }
      }
    });

  });
}

main();

Dans mon cas, le script ci-dessus produit des résultats :

"colors": "0.6.0-1",
"commander": "1.0.5",
"htmlparser": "1.7.6",
"optimist": "0.3.5",
"progress": "0.1.0",
"request": "2.11.4",
"soupselect": "0.2.0",   // Remember: remove the comma character in the last line.

Maintenant, vous pouvez les copier et les coller. Amuse-toi bien !

80voto

Pylinux Points 605

npm init

pour créer le fichier package.json et ensuite vous utilisez

ls node_modules/ | xargs npm install --save

pour remplir les modules que vous avez dans le dossier node_modules.

Editer : @paldepind a fait remarquer que la deuxième commande est redondante car npm init ajoute maintenant automatiquement ce que vous avez dans votre dossier node_modules/. Je ne sais pas si cela a toujours été le cas, mais maintenant au moins, cela fonctionne sans la deuxième commande.

24voto

ahmed hamdy Points 1020

Ligne de commande :

npm init

créera le fichier package.json

Pour installer, mettre à jour et désinstaller les paquets sous les dépendances dans le fichier package.json :

Ligne de commande :

npm install <pkg>@* --save 

ajoutera automatiquement la dernière version du paquet sous les dépendances dans le fichier package.json.

EX :

npm install node-markdown@* --save

Ligne de commande :

npm install <pkg> --save

ajoutera aussi automatiquement la dernière version du paquet sous les dépendances dans le fichier package.json.

si vous avez besoin d'une version spécifique pour un paquet, utilisez ceci Ligne de commande :

npm install <pkg>@<version> --save

ajoutera automatiquement la version spécifique du paquet sous les dépendances dans le fichier package.json

EX :

npm install koa-views@1.0.0 --save

si vous avez besoin d'une gamme spécifique de versions pour un paquet, utilisez ceci Ligne de commande :

npm install <pkg>@<version range>

ajoutera automatiquement dans le fichier package.json la dernière version du paquet comprise dans l'intervalle des versions sous dépendances.

EX :

npm install koa-views@">1.0.0 <1.2.0" --save

Pour plus de détails sur la façon d'écrire la version du paquet npm Doc

Ligne de commande :

npm update --save

mettra à jour les paquets dans le fichier package.json et ajoutera automatiquement la version mise à jour pour tous les paquets sous dépendances dans le fichier package.json

Ligne de commande :

npm uninstall <pkg> --save

va automatiquement supprimer le paquet des dépendances dans le fichier package.json et supprimer le paquet du dossier node_module

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X