Soy nuevo en gruñir y npm. Así que estoy probando un "ejemplo de libro de cocina" en el sitio ' http://tech.pro/tutorial/1190/package-managers-an-introductory-guide-for-the-uniniticated-front-end-developer#front_end_developers ' . No debería tener que buscar allí ahora, pero pensé que sería bueno compartir el sitio. Hasta ahora todo bien, hasta que se trata de la instalación global. (Ok, tuve que resolver algunos errores, pero ahora tengo npm funcionando).
Cuando se trata de intentar instalar algo globalmente, me quedo atascado.
Lo que hice hasta ahora para probar la instalación global de algún paquete:
Directorio de prueba creado
grunttest
Dentro de ese directorio:
npm install -g jshint
Salida que puedo ver:
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])
Me acabo de dar cuenta del 304, que debería estar bien, porque solo dice que el recurso no se modificó desde la última instalación (unos minutos antes).
Verificando si el jshint existe con:
`npm -global list`
Salida:
[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**
Preguntas:
- ¿Por qué obtengo npm ERR? extraño ...?
- Qué significa eso?
- ¿Cómo puedo resolver este problema?
Información:
Estoy en una máquina con Windows Windows 7, usando cygwin como shell. intentar solo el jshint ( jshint someTestfile.js
) por supuesto no funciona.
Gracias de antemano, Meru
jshint myfile.js
debe ejecutar jshintmyfile.js
.grunt-contrib-jshint
tarea en suGruntfile.js
. Lo único que instala globalmente es lonpm i grunt-cli -g
que le da acceso para ejecutar elgrunt
comando para ejecutar unGruntfile.js
. Consulte esta guía para obtener más información: gruntjs.com/getting-startednpm prune
para deshacerse de ellas.npm prune --your-env
1 y 2: significa que no tiene el jshint listado en el archivo package.json de su proyecto, pero que está instalado globalmente. Entonces no es un gran problema.
3: Para evitar este error extraño , puede ejecutar o volver a ejecutar la instalación con la opción
--save
. Esto actualizará automáticamente su archivo package.json:O necesita actualizar manualmente su archivo package.json con un
"dependencies": {...}
fuente
--save
no funciona junto con-g
. La lista global de paquetes no tiene package.json.Resolví esto haciendo un
npm update
en la carpeta del paquete principal que eliminó algunos de los paquetes extraños de la lista y luego lo hizonpm uninstall <package>
con los pocos restantes.Parece haber funcionado, ya que no obtengo errores después de hacer esto.
fuente
Lo resolví combinando todas las respuestas. Al principio instalé el paquete a nivel mundial.
Dado que npm instaló este paquete también a nivel mundial, pero no lo agregó a mi archivo package.json local, tuve que hacer algo al respecto.
Elijo la solución para eliminar la local y luego instalarla globalmente.
De esta manera, no tengo más advertencias y no estropeo el archivo package.json.
fuente
¡En mi caso, vi este ERR npm! mensaje extraño 'en mi terminal cygwin cuando hice un' npm ls '. Pensé que esta era una especie de configuración corrupta globalmente después de haber tenido muchos retoques. Aprendo las siguientes observaciones aquí:
Yo 'rm package.json' y 'npm ls' ya no muestran el mensaje de error. Entonces digo, que siempre verifique la ubicación actual para ver la presencia de la carpeta 'node_modules' y el archivo package.json porque estos se priorizan primero en la verificación y si faltan, la verificación continúa en la carpeta principal y así sucesivamente, y si ha manipulado muchos fragmentos de código, es posible que haya dispersado montones y montones de carpetas node_modules y archivos package.json. Nada está realmente dañado aquí, a diferencia de las experiencias que tenemos cuando hacemos desarrollo J2EE Java / eclipse IDE o durante los días en que tenemos que usar regedit para cambiar la configuración en Windows.
fuente
En mi caso, fue porque el nombre del paquete en su
package.json
archivo no era el mismo que el nombre de dependencia que figura en elpackage.json
módulo dependiente. Mi error, ya que es un módulo nuevo que creé, pero difícil de detectar, ya que npm no da ninguna pista.Esto sucedió al usar la
dependencies: { "my-module": "file:local-modules/mymodule" }
sintaxis, con un error tipográfico en el nombre "my-module".fuente
Esto se debe al hecho de que su paquete no está en su package.json. Si lo agrega, el problema se resolverá, mire la imagen a continuación:
fuente