Recientemente hice un cambio al Nodo v.6, y comenzó a crear más y más problemas con la ejecución de compilaciones normales grunt / gulp / webpack
Por ejemplo:
$ gulp
[14:02:20] Local gulp not found in ~/_Other/angular-2-ts/angular2-seed
[14:02:20] Try running: npm install gulp
mientras que gulp y todos los demás complementos y módulos están instalados (e incluso reinstalados mediante rm -rf node_modules
) en la carpeta / node_modules.
La mayoría de esos errores tienen líneas como
(node:42) fs: re-evaluating native module sources is not supported.
If you are using the graceful-fs module,
please update it to a more recent version.
con 42 como número arbitrario
Al igual que en el número que he enviado, en el repositorio angular2-seed https://github.com/mgechev/angular2-seed/issues/902
Lo que he intentado hacer es degradar al Nodo v.5 a través de n ( https://www.npmjs.com/package/n ): funcionó. Luego elimine todas las node_modules
carpetas, luego haga
npm info graceful-fs -v
3.3.6
ok, vamos a actualizar o eliminar e instalar nuevo:
npm i graceful-fs@latest
npm i graceful-fs@4.1.4
sudo npm i graceful-fs@4.1.4 -g
todos los resultados en
npm info graceful-fs -v
3.3.6
Así que ahora estoy atrapado actualmente con graceful-fs 3.3.6 o incluso peor en algunas dependencias de módulos, como
$ angular2-seed
$ npm install
//other lines..
npm WARN deprecated graceful-fs@1.2.3: graceful-fs v3.0.0 and before
will fail on node releases >= v7.0. Please update to graceful-fs@^4.0.0
as soon as possible. Use 'npm ls graceful-fs' to find it in the tree.
¿Cuál podría ser la estrategia aquí?
- ¿Parchear manualmente todos los deps que contienen graceful-fs <4.0.0?
- ¿Hay algún cambio global para usar una versión de paquete específica?
- Reinstalar todo?
fuente
Respuestas:
Tuve este problema y pude solucionarlo actualizando
npm
Antes de la actualización, el resultado de
npm info graceful-fs | grep 'version:'
fue:Después de la actualización, el resultado es:
fuente
nvm use v6.2.1
npm info graceful-fs -v
devuelve la versión de npm (es lo mismo que ejecutarnpm -v
) y NO graceful-fs. Para obtener la versión agraciados-fs, algo así como el usonpm info graceful-fs | grep version:
.rm -rf node_modules && npm install
en la carpeta de inicio del proyecto.Escriba
npm list graceful-fs
y verá qué versiones de graceful-fs están instaladas actualmente.En mi caso obtuve:
Como puede ver en el
gulp
fondo, depende de una versión muy antigua. Desafortunadamente, no puedo actualizar eso yo mismo usandonpm update graceful-fs
.gulp
necesitaría actualizar sus dependencias. Entonces, si tiene un caso como este, no tiene suerte. Pero puede abrir un problema para el proyecto con la antigua dependencia, es decirgulp
.fuente
gulp
no lo cambiará en la versión 3 sino solo en la versión 4: github.com/gulpjs/gulp/issues/1571graceful-fs
dependencia del módulo anterior a v4 provenía denpm
sí misma (versión 3.10.3) a través de[email protected]
. No vi esto hasta que enumeré las dependencias globalesgraceful-fs
usandonpm list -g graceful-fs
.Resuelto este error con reinstalar trago
fuente
Eliminar el contenido de la carpeta node_modules y ejecutar
me resolvió el problema!
fuente
Como se describe aquí , también puede intentar el comando
Eso lo solucionó para mí, después de que los otros pasos no habían dado resultados completos (aparte de actualizar todo).
fuente
Solo para señalar que cordova trae su propio npm con la dependencia graceful-fs, por lo que si usa Cordova asegúrese de que sea el último para que también obtenga los últimos graceful-fs.
fuente
Pude arreglarlo:
package.json
npm install
fuente
si está ejecutando nvm, es posible que desee ejecutar
nvm use <desired-node-version>
Esto mantiene el nodo consistente con npmfuente
O intente actualizar
node
:Si está instalado con
brew
(como en mi caso).sudo npm update -g npm
no resolvió el "mismo" problema para mí.fuente
El informe dice: falta un archivo en ... vendor / win32-x64-48 / binding.node
Busqué el archivo binding.node y lo encuentro en ...
https://github.com/sass/node-sass-binaries
Copie el archivo correcto con el nombre binding.node y funciona.
fuente
En el caso de mi proyecto Cordova, desinstalar e instalar cordova -g me solucionó el problema.
fuente