web-dev-qa-db-fra.com

npm - enregistrer les packages installés en tant que dépendances

J'ai installé certains packages via npm install $package, sans configurer un package.json premier. Maintenant, je voudrais créer un package.json fichier, mais conservez tous les packages installés en tant que dépendances. Exécuter simplement npm init n'offre pas cette option, puis-je y parvenir automatiquement?

34
doque

Mise à jour janvier 2016

npm prend désormais cela en charge. J'ai la version npm .5.2.

donc avec juste un dossier node_modules avec nderscore installé.

npm init --yes

ensuite:

cat package.json

Contenu dans package.json:

"dependencies": {
    "underscore": "^1.8.3"
  },
34
arcseldon

PDATE: Avec le lancement de npm v3, cette astuce créera beaucoup d'entrées indésirables sur votre package.json fichier. C'est parce que les dépendances des modules sont maintenant aplaties, comme l'a souligné @ sunny-mittal.

npm ne supporte pas cela, pour autant que je sache. Vous auriez dû réinstaller chaque paquet en passant --save à chacun.

Mais, il existe une solution de contournement, si vous êtes sur des systèmes basés sur Unix. Depuis l'intérieur du dossier racine de votre projet, avec un package.json fichier déjà créé (npm init, comme vous l'avez mentionné), exécutez:

npm install $(ls node_modules/) --save

et il réinstallera les packages et les enregistrera dans package.json comme dependencies.

25
Rodrigo Medeiros

Depuis NPM node_modules est plat maintenant et la réponse de @ Rodrigo ne va pas très bien avec ça.

C'est ce que j'ai tricoté ensemble.

npm list --depth=0 | sed "1d" | sed -E "s/^[\`+-]+\s//" | sed -E "s/@(.*)$//"

C'est essentiellement ce que ls node_modules fait avant.

Une doublure pour économiser installé.

npm install $(npm ls | sed "1d" | sed -E "s/^[\`+-]+\s//" | sed -E "s/@(.*)$//") --save

J'utilise

$ npm --version 
3.5.3

Quelles listes comme ça.

$ npm list --depth=0
[email protected] /home/victor/x
+-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected]
`-- [email protected]
3
Victor Häggqvist

J'ai écrit un module appelé pkg-save .
Vous pouvez essayer si votre version npm est "2.x.x".
Je n'ai pas testé dans npm v3, donc je ne sais pas si c'est utile ou non dans npm v3.

2
Sinalvee