node.js - nodejs - npm install
Cómo arreglar ''fs: no se admite la reevaluación de las fuentes del módulo nativo''-graceful-fs (11)
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 a través de
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 carpetas
node_modules
, 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 [email protected]
sudo npm i [email protected] -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 [email protected]: 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?
Como se describe here , también puede intentar el comando
npm cache clean
Eso lo arregló para mí, después de que los otros pasos no habían dado resultados completos (aparte de actualizar todo).
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.
Eliminar el contenido de la carpeta node_modules y ejecutar
npm install bower
npm install
resuelto el problema para mi!
En el caso de mi proyecto Cordova, desinstalar e instalar cordova -g me solucionó el problema.
npm uninstall -g cordova
npm install -g cordova
Escriba
npm list graceful-fs
y verá qué versiones de graceful-fs están instaladas actualmente.
En mi caso obtuve:
npm list graceful-fs
@request/[email protected] /projects/request/promise-core
+-- [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]
`-- [email protected]
`-- [email protected]
`-- [email protected]
Como puede ver,
gulp
fondo depende de una versión muy antigua.
Desafortunadamente, no puedo actualizarlo yo mismo usando
npm 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 decir,
gulp
.
O intente actualizar el
node
:
brew upgrade node
Si se instala con
brew
(como en mi caso).
sudo npm update -g npm
no resolvió el "mismo" problema para mí.
Pude arreglarlo:
-
actualización por
package.json
- eliminar la carpeta node_modules
-
ejecutando
npm install
Resuelto este error con reinstalar trago
npm uninstall gulp
npm install gulp
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.
Tuve este problema y pude solucionarlo actualizando
npm
sudo npm update -g npm
Antes de la actualización, el resultado de
npm info graceful-fs | grep ''version:''
npm info graceful-fs | grep ''version:''
era:
version: ''3.3.12''
Después de la actualización, el resultado es:
version: ''3.9.3''
si está ejecutando nvm, es posible que desee ejecutar
nvm use <desired-node-version>
Esto mantiene el nodo consistente con npm