Este es mi package.json
para 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.json
como:"module-name": "git+ssh://git@myserver:user/module-name.git"
postinstall
script falla porque losgrunt
paquetes 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_modules
carpeta 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 install
comando.deberá instalar manualmente los paquetes y luego ejecutarlos
npm shrinkwrap
para actualizar el archivo retráctil.fuente
package-lock.json
archivo después de actualizar al nodo 8.0.0 y npm 5.0.0. Después de eso, la ejecuciónnpm install
solo instalaría ese paquete en lugar de todas mis dependencias. Eliminarpackage-lock.json
y volver a ejecutar menpm install
resolvió el problema.package-lock.json
se estaba interponiendo en el camino.Sospecho que está enfrentando el problema de que su
package.json
archivo no está en el mismo directorio que el suyoGruntfile.js
. Cuando ejecuta susgrunt xxx
comandos, recibe un mensaje de error como:Por ahora, la solución es:
npm install
para 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.js
y ambos contienenpackage.json
el mismo nivel.grunt
, es un problema con lanpm
instalació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_modules
ypackage-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/grunt
npm install
ygrunt install
, trabaja muy bien. El problema es que NPM no parece instalar las dependencias del repositorio como se especifica en elpackage.json
grunt
, 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.json
secció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 somemodule
editar: también asegúrese de usted
save
.p.ej:
npm install yourmoduleName --save
fuente
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-dev
Eso instalará las dependencias locales de gruñidos en su proyecto. Próximo:
npm install
Eso 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
dependencies
parte 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 derepo1
no estaba allí.repo1
fue enumerar esa dependencia endevDependencies
lugar dedependencies
repo1
'spackage.json
dedevDependencies
adependencies
repo2
, eliminé minode_modules
ypackage-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