Ceci est mon package.json
pour le module que j'inclus dans le projet parent:
{
"version": "0.0.1",
"name": "module-name",
"dependencies": {
"express": "3.3.4",
"grunt": "0.4.1",
"grunt-contrib-compass": "0.4.0",
"grunt-contrib-copy": "0.4.1",
"grunt-contrib-cssmin": "0.4.1",
"grunt-contrib-jshint": "0.6.3",
"grunt-contrib-requirejs": "0.4.1",
"grunt-contrib-uglify": "0.2.2",
"grunt-contrib-watch": "0.5.1",
"grunt-express-server": "0.4.1",
"grunt-karma": "0.4.5",
"grunt-regex-replace": "0.2.5",
"request": "2.25.0"
},
"scripts": {
"postinstall": "grunt install"
}
}
Une chose à noter est que ce module est contenu dans un dépôt privé et je l'inclus dans le parent package.json
comme:"module-name": "git+ssh://git@myserver:user/module-name.git"
postinstall
script échoue car lesgrunt
packages locaux ne sont pas trouvés car ils ne sont pas installés par NPMRéponses:
Il semble que vous ayez rencontré un bogue qui existe depuis un certain temps et qui n'a pas encore de solution. Il existe plusieurs problèmes ouverts pour ce cas dans le référentiel npm:
Dans le premier, les personnes répertorient plusieurs solutions de contournement que vous pouvez essayer.
Une solution alternative peut être (un peu hackish) de lister explicitement les dépendances comme dépendants de premier niveau. Cela vous oblige à maintenir la liste, mais cela doit être fait très rarement.
la source
J'ai eu un problème très similaire, la suppression du
node_modules
dossier entier et la réinstallation ont fonctionné pour moi. J'ai appris cette astuce lors de l'émission IT Crowd !la source
npm install
.J'utilise une machine Windows.
la source
si vous avez hérité de ce code, il se peut que les dépendances et les versions aient été verrouillées et que vous ayez un fichier ./npm-shrinkwrap.json.
si votre dépendance n'est pas répertoriée dans ce fichier, elle ne sera jamais installée avec la
npm install
commande.vous devrez installer manuellement les packages, puis exécuter
npm shrinkwrap
pour mettre à jour le fichier d'emballage.la source
package-lock.json
fichier après la mise à jour vers le nœud 8.0.0 et npm 5.0.0. Après cela, l'exécutionnpm install
n'installerait que ce package au lieu de toutes mes dépendances. La suppressionpackage-lock.json
et la réexécution ontnpm install
résolu le problème pour moi.package-lock.json
se mettait en travers du chemin.Je soupçonne que vous faites face au problème où votre
package.json
fichier ne se trouve pas dans le même répertoire que le vôtreGruntfile.js
. Lorsque vous exécutez vosgrunt xxx
commandes, vous obtenez un message d'erreur du type:Pour l'instant, la solution est:
npm install
pour les charger localementÀ mon humble avis, il est triste que nous ne puissions pas avoir de modules de résolution de grognement chargés à partir d'un module npm parent (c'est-à-dire package.json dans un répertoire parent au sein du même projet). La discussion ici semble indiquer que cela a été fait pour éviter de charger des modules "globaux", mais je pense que ce que nous voulons, c'est charger à la place des modules "mon projet".
la source
Gruntfile.js
et les deux contiennentpackage.json
le même niveau.grunt
, c'est un problème avec l'npm
installation récursive des dépendances dans mon projet de sous-module.OP peut être vrai pour une ancienne version de node. Cependant, j'ai également fait face à la même chose avec le nœud 4.4.1.
Il peut très bien être lié à la version du nœud que vous utilisez. Essayez de passer à une dernière version. Certaines dépendances ne se chargent pas de manière transitoire si elles sont incompatibles avec la version du nœud.
J'ai trouvé cela en courant
npm update
.Après la mise à niveau vers la dernière version (4.4 -> 5.9); cela a été corrigé.
la source
Dans mon cas, cela a aidé à supprimer
node_modules
etpackage-lock.json
.Après cela, réinstallez tout avec
npm install
.la source
Vérifiez également que le nom de votre colis est correctement accepté:
FAUX:
CORRECT
la source
Vous devrez peut-être installer le grunt-cli, essayez ceci avant de faire une installation npm:
Cela corrige le grunt ne se ferme pas pour moi, vous aurez également besoin d'un fichier grunt valide.
Source: https://stackoverflow.com/a/16456467/241294
la source
~ ᐅ which grunt /opt/local/bin/grunt
npm install
etgrunt install
, cela fonctionne très bien. Le problème est que NPM ne semble pas installer les dépendances du repo comme spécifié dans lepackage.json
grunt
, lorsque vous installez des modules avec NPM, il fournit généralement un résumé à la fin de toutes les dépendances de ce module qui ont déjà été installées; lorsque j'installe le module en question, je ne reçois pas un résumé des modules de dépendance installés.Juste au cas où quelqu'un souffrirait de cette situation difficile et ferait la même erreur d'anine que moi, voici ce que c'était dans mon cas. Après m'être cogné la tête contre le mur pendant une heure, je me suis rendu compte que mon json était incorrectement imbriqué et que les «dépendances» clés se trouvaient à l'intérieur du «référentiel» de clés.
Inutile de dire qu'aucune erreur n'était évidente et qu'aucun module n'a été installé.
la source
Une autre façon de contourner ce problème consiste à l'ajouter dans la
package.json
section des scripts de votre modulece que cela fera, c'est qu'il installera tous les packages nécessaires au module et vous n'obtiendrez pas cette erreur.
la source
se produit avec l'ancienne version du nœud. utilisez la dernière version du nœud comme ceci:
$ nvm use 8.0
$ rm -rf node_modules
$ npm install
$ npm i somemodule
edit: assurez-vous également que vous
save
.par exemple:
npm install yourmoduleName --save
la source
Je recevais cette erreur lorsque j'ai installé un environnement de développement Node propre sur Windows.
Pour résoudre ce problème, je suis allé dans mon nouveau répertoire de projet (avec lequel je viens de créer un échafaudage
yo angular
) et j'ai tapé deux commandes:npm install -g grunt --save-dev
Cela installera les dépendances Grunt locales dans votre projet. Prochain:
npm install
Cela garantira que toutes vos (nouvelles) dépendances de projet sont installées.
Tada!
la source
Il vaut la peine de mentionner pour vous assurer que vos dépendances doivent être dans la
dependencies
partie de votrepackage.json
(par opposition àdevDependencies
).Mon problème était fondamentalement le même que OP:
repo1
) via un"module-name": "git+ssh://git@myserver:user/my-repo-name.git"
autre dépôt (appelons-lerepo2
),repo2
'snode_modules
, une dépendance de package derepo1
n'était pas là.repo1
été d'inscrire cette dépendance audevDependencies
lieu dedependencies
repo1
« spackage.json
dedevDependencies
ladependencies
repo2
, j'ai enlevé manode_modules
etpackage-lock.json
, faitnpm install
, voilà! ... la dépendance était là!la source
J'ai eu le même problème. Mais sur la même machine, un projet avait un bon package.json, où toutes mes dépendances sont installées avec succès. Et dans un autre projet, mes dépendances package.json n'ont pas été installées quoi que je fasse. J'ai juste copié le package.json et collé dans cet autre projet. Et ça a marché! La différence que j'ai trouvée n'était qu'une ligne vide au début du fichier. Je ne sais pas ou cela influence quoi que ce soit, peut-être un autre problème. Mais le problème était uniquement le fichier package.json.
la source
Je pense que j'ai également fait face à ce problème, et la meilleure solution que j'ai trouvée était de regarder ma console et de comprendre l'erreur qui était lancée. Donc, je l'ai lu attentivement et j'ai trouvé que le problème était que je n'avais pas spécifié mon dépôt, ma description et mon nom valide dans mon
package.json
. J'ai ajouté ces informations et tout allait bien.la source