Je suis nouveau pour grogner et npm. J'essaye donc un "exemple de livre de cuisine" sur le site ' http://tech.pro/tutorial/1190/package-managers-an-introductory-guide-for-the-uninitiated-front-end-developer#front_end_developers ' . Vous ne devriez pas avoir à chercher là-bas maintenant, mais j'ai pensé qu'il serait bon de partager le site. Jusqu'ici tout va bien, jusqu'à ce qu'il s'agisse de l'installation globale. (Ok, quelques erreurs que j'ai dû résoudre, mais maintenant je travaille npm).
Quand il s'agit d'essayer d'installer quelque chose de manière globale, je reste bloqué.
Ce que j'ai fait jusqu'à présent pour tester globalement l'installation d'un package:
Répertoire de test créé
grunttest
Dans ce répertoire:
npm install -g jshint
Sortie que je peux voir:
npm http GET https://registry.npmjs.org/jshint
npm http 304 https://registry.npmjs.org/jshint
...
npm http 304 https://registry.npmjs.org/string_decoder
C:\Program Files\nodejs\node_modules\npm\jshint -> C:\Program Files\nodejs\node_modules\npm\node_modules\jshinnt
[email protected] C:\Program Files\nodejs\node_modules\npm\node_modules\jshint
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected])
Je viens de me rendre compte que le 304, ce qui devrait être correct, car il dit simplement que la ressource n'a pas été modifiée depuis la dernière installation (quelques minutes avant).
Vérifier si le jshint existe avec:
`npm -global list`
Production:
[email protected] C:\Program Files\nodejs\node_modules\npm
├── [email protected]
├── [email protected]
├─...
├──
├── [email protected]
├── [email protected]
├── [email protected]
├─┬ [email protected]
│ └── [email protected]
├─┬ [email protected] extraneous
│ ├─┬ [email protected]
│ │ └─┬ [email protected]
│ │ └── [email protected]
│ ├── [email protected]
│ ├── [email protected]
│ ├─┬ [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ ├── [email protected]
│ │ └─┬ [email protected]
│ │ └─... ├── [email protected]
├── [email protected]
└── [email protected]
**npm ERR! extraneous: [email protected] C:\Program Files\nodejs\node_modules\npm\node_modules\jshint npm**
Des questions:
- Pourquoi est-ce que je reçois npm ERR! étranger ...?
- Qu'est-ce que ça veut dire?
- Comment puis-je résoudre ce problème?
Information:
Je suis sur une machine Windows 7, utilisant cygwin comme shell. essayer de juste le jshint ( jshint someTestfile.js
) ne fonctionne bien sûr pas.
Merci d'avance, Meru
jshint myfile.js
doit exécuter jshint surmyfile.js
.grunt-contrib-jshint
tâche dans votre fichierGruntfile.js
. La seule chose que vous installez globalement estnpm i grunt-cli -g
ce qui vous donne accès pour exécuter lagrunt
commande pour exécuter un fichierGruntfile.js
. Voir ce guide pour plus d'informations: gruntjs.com/getting-startednpm prune
pour vous en débarrasser.npm prune --your-env
1 & 2: Cela signifie que vous n'avez pas le jshint listé dans le fichier package.json de votre projet mais qu'il est installé globalement. Ce n'est donc pas un gros problème.
3: pour éviter ce superflu erreur , vous pouvez exécuter ou réexécuter l'installation avec l'option
--save
. Cela mettra à jour automatiquement votre fichier package.json:Ou vous devez mettre à jour manuellement votre fichier package.json avec un
"dependencies": {...}
la source
--save
ne fonctionne pas avec-g
. La liste globale des packages n'a pas de package.json.J'ai résolu cela en faisant un
npm update
dans le dossier du package parent qui a supprimé certains des packages superflus de la liste, puisnpm uninstall <package>
pour les quelques autres.Semble avoir fonctionné, car je n'obtiens aucune erreur après avoir fait cela.
la source
Je l'ai résolu en combinant toutes les réponses. Au début, j'ai installé le package globalement.
Étant donné que npm a également installé ce pack globalement mais ne l'a pas ajouté à mon fichier package.json local, j'ai dû faire quelque chose à ce sujet.
Je choisis, la solution pour supprimer le local puis l'installer globalement.
De cette façon, je n'ai plus d'avertissements et je ne gâche pas le fichier package.json.
la source
Dans mon cas, j'ai vu ce 'npm ERR! 'message superflu dans mon terminal cygwin lorsque j'ai fait un' npm ls '. Je pensais que c'était une sorte de configuration globalement corrompue après avoir beaucoup bricolé. J'apprends ici les observations suivantes:
Je 'rm package.json' et 'npm ls' n'affiche plus de message d'erreur. Je dis donc que toujours vérifier l'emplacement actuel pour la présence du dossier 'node_modules' et du fichier package.json car ils sont priorisés en premier dans la vérification et si ceux-ci sont manquants, la vérification continue vers le dossier parent et ainsi de suite, et si vous avez beaucoup bricolé beaucoup d'extraits de code, alors vous avez peut-être éparpillé beaucoup de dossiers node_modules et de fichiers package.json. Rien n'est vraiment corrompu ici, contrairement à ces expériences que nous avons lors du développement J2EE Java / EDI eclipse ou pendant les jours où nous devons utiliser regedit pour modifier les paramètres de Windows.
la source
Dans mon cas, c'était parce que le nom du package dans son
package.json
fichier n'était pas le même que le nom de la dépendance répertorié dans lepackage.json
de la dépendance module dépendant. Mon erreur, car c'est un nouveau module que j'ai créé, mais difficile à repérer, car npm ne donnera aucun indice.Cela s'est produit lors de l'utilisation de la
dependencies: { "my-module": "file:local-modules/mymodule" }
syntaxe, avec une faute de frappe dans le nom "mon-module".la source
Cela est dû au fait que votre package n'est pas dans votre package.json. Si vous l'ajoutez, le problème sera résolu, veuillez regarder l'image ci-dessous:
la source