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?
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"
},
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
.
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]
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.