Este es mi package.jsonpara el módulo que estoy incluyendo en el proyecto principal:
{
"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"
}
}
Una cosa a tener en cuenta es que este módulo está contenido en un repositorio privado y lo incluyo en el padre package.jsoncomo:"module-name": "git+ssh://git@myserver:user/module-name.git"

postinstallscript falla porque losgruntpaquetes locales no se encuentran porque NPM no los instalaRespuestas:
Parece que has encontrado un error que existe desde hace bastante tiempo y que aún no tiene solución. Hay varios problemas abiertos para este caso en el repositorio npm:
En el primero, las personas enumeran varias soluciones que puede probar.
Una solución alternativa puede ser (un poco hack) para enumerar explícitamente las dependencias como dependientes de primer nivel. Esto requiere que mantenga la lista, pero prácticamente tiene que hacerse con muy poca frecuencia.
fuente
Tuve un problema muy similar, eliminar la
node_modulescarpeta completa y volver a instalar me funcionó. ¡Aprendí este truco del espectáculo IT Crowd !fuente
npm install.Estoy usando la máquina de Windows.
fuente
si heredó este código, podría ser que las dependencias y versiones estuvieran bloqueadas y que tuviera un archivo ./npm-shrinkwrap.json.
Si su dependencia no figura en ese archivo, nunca se instalará con el
npm installcomando.deberá instalar manualmente los paquetes y luego ejecutarlos
npm shrinkwrappara actualizar el archivo retráctil.fuente
package-lock.jsonarchivo después de actualizar al nodo 8.0.0 y npm 5.0.0. Después de eso, la ejecuciónnpm installsolo instalaría ese paquete en lugar de todas mis dependencias. Eliminarpackage-lock.jsony volver a ejecutar menpm installresolvió el problema.package-lock.jsonse estaba interponiendo en el camino.Sospecho que está enfrentando el problema de que su
package.jsonarchivo no está en el mismo directorio que el suyoGruntfile.js. Cuando ejecuta susgrunt xxxcomandos, recibe un mensaje de error como:Por ahora, la solución es:
npm installpara cargarlos localmenteEn mi humilde opinión, es triste que no podamos tener módulos de resolución grunt cargados desde un módulo npm padre (es decir, package.json en un directorio padre dentro del mismo proyecto). La discusión aquí parece indicar que se hizo para evitar cargar módulos "globales", pero creo que lo que queremos es cargar desde módulos "mi proyecto".
fuente
Gruntfile.jsy ambos contienenpackage.jsonel mismo nivel.grunt, es un problema con lanpminstalación recursiva de las dependencias en mi proyecto de submódulo.OP puede ser cierto para una versión anterior del nodo. Sin embargo, también enfrenté lo mismo con el nodo 4.4.1.
Muy bien puede estar vinculado a la versión de nodo que está utilizando. Intenta actualizar a una última versión. Ciertas dependencias no se cargan transitivamente si son incompatibles con la versión del nodo.
Encontré esto corriendo
npm update.Después de actualizar a la última versión (4.4 -> 5.9); Esto se solucionó.
fuente
En mi caso ayudó a eliminar
node_modulesypackage-lock.json.Después de eso simplemente reinstale todo con
npm install.fuente
También verifique que el nombre de su paquete sea aceptado correctamente:
INCORRECTO:
CORRECTO
fuente
Es posible que deba instalar el grunt-cli, intente esto antes de realizar una instalación npm:
Eso soluciona que el gruñido no salga para mí, también necesitarás un archivo gruñido válido.
Fuente: https://stackoverflow.com/a/16456467/241294
fuente
~ ᐅ which grunt /opt/local/bin/gruntnpm installygrunt install, trabaja muy bien. El problema es que NPM no parece instalar las dependencias del repositorio como se especifica en elpackage.jsongrunt, cuando instala módulos con NPM, generalmente proporciona un resumen al final de cualquier dependencia de ese módulo que ya se haya instalado; cuando instalo el módulo en cuestión no recibo un resumen de los módulos de dependencia instalados.En caso de que alguien esté sufriendo esta situación y cometa el mismo error que yo, he aquí lo que sucedió en mi caso. Después de golpear mi cabeza contra la pared durante una hora, me di cuenta de que mi json estaba anidado incorrectamente y que las "dependencias" clave estaban dentro del "repositorio" clave.
No hace falta decir que no hubo errores evidentes y que no se instalaron módulos.
fuente
Otra forma de solucionar esto es agregar esto a la
package.jsonsección de scripts del módulolo que esto hará es que instalará todos los paquetes que necesita el módulo y no obtendrá ese error.
fuente
sucede con la versión anterior del nodo. use la última versión del nodo de esta manera:
$ nvm use 8.0$ rm -rf node_modules$ npm install$ npm i somemoduleeditar: también asegúrese de usted
save.p.ej:
npm install yourmoduleName --savefuente
Recibí este error cuando instalé un entorno de desarrollo de Nodo limpio en Windows.
Para solucionar esto, entré en mi nuevo directorio de proyectos (con el que acabo de andamiar
yo angular) y escribí dos comandos:npm install -g grunt --save-devEso instalará las dependencias locales de gruñidos en su proyecto. Próximo:
npm installEso asegurará que todas las dependencias de su (nuevo) proyecto estén instaladas.
Tada!
fuente
Vale la pena mencionar para asegurarse de que sus dependencias deben estar en la
dependenciesparte de supackage.json(en lugar dedevDependencies).Mi problema era básicamente el mismo que OP:
repo1) a través"module-name": "git+ssh://git@myserver:user/my-repo-name.git"de otro repositorio (vamos a llamarlorepo2),repo2'snode_modules, una dependencia de paquete derepo1no estaba allí.repo1fue enumerar esa dependencia endevDependencieslugar dedependenciesrepo1'spackage.jsondedevDependenciesadependenciesrepo2, eliminé minode_modulesypackage-lock.json, ¡lo hicenpm install, un voilà! ... ¡había dependencia!fuente
Yo tuve el mismo problema. Pero en la misma máquina, un proyecto tenía un buen paquete.json, donde todas mis dependencias se instalaron correctamente. Y en otro proyecto, mis dependencias package.json no se instalaron sin importar lo que haga. Acabo de copiar el paquete.json y pegué en ese otro proyecto. ¡Y funcionó! La diferencia que encontré fue solo una línea vacía al comienzo del archivo. No sé o influye en algo, tal vez algún otro problema. Pero el problema era solo el archivo package.json.
fuente
Creo que también enfrenté este problema, y la mejor solución que encontré fue mirar mi consola y descubrir el error que se estaba produciendo. Entonces, lo leí cuidadosamente y descubrí que el problema era que no especificaba mi repositorio, descripción y nombre válido en mi
package.json. Agregué esos datos y todo estuvo bien.fuente