Error: no se puede encontrar el módulo '../lib/utils/unsupported.js' al usar Ionic

262

Siempre recibo este mensaje de error cuando ejecuto "Nombre del proyecto de inicio iónico":

Mensaje de error

Running command - failed![ERROR] An error occurred while running npm install (exit code 1):

    module.js:471
        throw err;
        ^

    Error: Cannot find module '../lib/utils/unsupported.js'
        at Function.Module._resolveFilename (module.js:469:15)
        at Function.Module._load (module.js:417:25)
        at Module.require (module.js:497:17)
        at require (internal/module.js:20:19)
        at /usr/local/lib/node_modules/npm/bin/npm-cli.js:19:21
        at Object.<anonymous> (/usr/local/lib/node_modules/npm/bin/npm-cli.js:79:3)
        at Module._compile (module.js:570:32)
        at Object.Module._extensions..js (module.js:579:10)
        at Module.load (module.js:487:32)
        at tryModuleLoad (module.js:446:12)
inxoy
fuente
El camino relativo está mal ..
Subburaj 05 de
comprobar el camino en ./bash_profile
Mohan Gopi
En MacOS, reinstalar desde nodejs.org ayuda a ver los votos a favor de stackoverflow.com/a/12313655/1497139
Wolfgang Fahl el

Respuestas:

775

Intente eliminar /usr/local/lib/node_modules/npmy reinstalar el nodo nuevamente. Esto debería funcionar.

En MacOS con Homebrew :

sudo rm -rf /usr/local/lib/node_modules/npm
brew reinstall node
Vincent Ducastel
fuente
1
si alguien quiere llegar a través del buscador: knowledge.autodesk.com/support/smoke/troubleshooting/caas/…
A.com
13
Si está utilizando cerveza, puede usar: brew unistall --force nodeybrew install node
Nico
15
@Nico el primer comando tiene un error tipográfico. La corrección será brew uninstall --force node.
Jayant Bhawal
11
¿Por qué está pasando?
Gaurav Paliwal
44
Después de ejecutar los comandos anteriores, ahora obteniendo >> -bash: / usr / local / bin / npm: No existe tal archivo o directorio
Tarun
81

Seguí las respuestas anteriores y reinstalé el nodo. Pero recibí este error.

Advertencia: El paso posterior a la instalación no se completó correctamente. Puede intentarlo nuevamente usando brew postinstall node

Entonces ejecuté este comando

sudo chown -R $(whoami):admin /usr/local/lib/node_modules/

Luego corrió

brew postinstall node
Movephase táctica
fuente
alternativamente, podría ejecutar sudo chown -R $ (whoami) $ (brew --prefix) / *
Pathfinder
27

Recibí un error similar y ahora lo tengo funcionando.

Primero asegúrese de tener la última versión

brew update

Elimine su instancia anterior de nodo:

brew uninstall node

Luego reinstale la última versión:

brew install node

Y luego asegúrese de que esté enlazado a / usr / local si aún no lo está. Recibirá un error que le informará que complete este paso.

brew link --overwrite node 

También hay disponibles más detalles sobre cómo instalar / actualizar el nodo .

Denae
fuente
12
Puede usar brew uninstall --ignore-dependencies nodesi, por ejemplo, tiene yarnen su sistema.
Sound Blaster
18

En Mac OS X (10.12.6), resolví este problema haciendo lo siguiente:

brew uninstall --force node
brew install node

Luego recibí un error quejándome de que el nodo después de la instalación falló y volver a ejecutar brew postinstall node

Entonces recibí un error:

permission denied @ rb_sysopen /usr/local/lib/node_modules/npm/bin/npx

Resolví ese error:

sudo chown -R $(whoami):admin /usr/local/lib/node_modules

Y ahora ya no recibo este error.

George Stocker
fuente
1
Tuve que repetir esto varias veces, en diferentes carpetas que necesitaban ser creadas o necesitaban cambiar su propiedad (para mi usuario). Cada vez que corría brew postinstall nodepara encontrar el siguiente problema, lo soluciono y repito.
T. Kim Nguyen
9

Si está utilizando la biblioteca "n" @ https://github.com/tj/n . Haz lo siguiente

  echo $NODE_PATH

Si la ruta del nodo está vacía, entonces

sudo n latest    - sudo is optional depending on your system

Después de cambiar las versiones de Node.js con n, es posible que npm no funcione correctamente.

curl -0 -L https://npmjs.com/install.sh | sudo sh
echo NODE_PATH

Debería ver su Nodo Path ahora. De lo contrario, podría ser otra cosa

phil
fuente
8

Como se mencionó anteriormente.

 sudo rm -rf /usr/local/lib/node_modules/npm
 brew uninstall --force node                
 brew install node
jackotonye
fuente
6

Intenté todas las respuestas de instalación anteriores / anteriores, ninguna funciona para mi computadora portátil.

Solo el método a continuación podría solucionar mi problema.

1) Ejecute los siguientes comandos:

sudo rm -rf /usr/local/lib/node_modules/npm
brew uninstall --force node      

2) Luego, vaya al sitio web oficial de Node.js https://nodejs.org/en/download/current/ para descargar el último paquete para una nueva instalación.

3) Ejecute su comando npm nuevamente, que ya no debería tener ningún error.

Este método funciona en macOS Mojave Versión 10.14.4 .

Jerry Chong
fuente
2

Sí, debe reinstalar el nodo:

sudo rm -rf /usr/local/lib/node_modules/npm
 brew uninstall --force node                
 brew install node
Walterwhites
fuente
2

Simplemente siga tres pasos;

  1. Borrar npmcaché con fuerza:

    npm cache clean -f

  2. Instale el npaquete globalmente usando npm:

    npm install -g n

  3. Instalar desde cualquiera de las tres opciones:

    a. sudo n stable (get the stable version)

    si. sudo n latest (get the latest version of node)

    C. sudo n x.x.x (get the specific version of node)

Laxmikanta Nayak
fuente
2

El error Cannot find module '../lib/utils/unsupported.js'es causado por require('../lib/utils/unsupported.js')in ./lib/node_modules/npm/bin/npm-cli.js.

De acuerdo con los requiredocumentos de nodejs , el módulo requerido se busca en relación con el archivo, ya que comienza con ../.

Por lo tanto, si tomamos la ruta relativa a ../lib/utils/unsupported.jspartir de ./lib/node_modules/npm/bin/npm-cli.js, el módulo requerido debe residir en ./lib/node_modules/npm/lib/utils/unsupported.js. Si no está allí, veo dos opciones:

  • la instalación está corrupta, en cuyo caso la respuesta de Vincent Ducastel para reinstalar el nodo podría funcionar
  • npmno es un enlace simbólico a ./lib/node_modules/npm/bin/npm-cli.js. Esto es lo que causó el error en mi configuración. Si llama npm, normalmente encontrará que lo está buscando en los directorios enumerados en la PATHvar. Por ejemplo, podría estar ubicado en ./bin. Sin embargo, npmen un ./bindirectorio solo debe haber un enlace simbólico a lo mencionado anteriormente ./lib/node_modules/npm/bin/npm-cli.js. Si no es un enlace simbólico pero contiene directamente el código, en algún lugar del proceso de instalación el enlace simbólico fue reemplazado por el archivo al que se vincula. En este caso, debería ser suficiente para recrear el enlace simbólico:cd ./bin; rm npm; ln -s npm ./lib/node_modules/npm/bin/npm-cli.js

Se deben ignorar todas las respuestas que sugieran verificar la configuración NODE_PATHo npmrc, ya que no se tienen en cuenta cuando se buscan módulos relativamente.

franzlst
fuente
1

Obtuve este error al mezclar los métodos de instalación / actualización: nodo instalado a través de la descarga del paquete del sitio web y luego utilicé brew para actualizar.

Lo solucioné desinstalando la versión brew:

desinstalar brew --nodo de ignorar dependencias

Luego volví al sitio web del nodo y lo descargué e instalé a través del administrador de paquetes: https://nodejs.org/en/download/ Por alguna razón, no funcionó ningún intento de reinstalar a través de brew.

jleatham
fuente
0

En mi caso faltaban $ NODE_PATH:

NODE="/home/ubuntu/local/node" #here your user account after home
NODE_PATH="/usr/local/lib/node_modules" 
PATH="$PATH:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:$NODE/bin:$NODE/lib/node_modules"

Marcar solo echo $NODE_PATHvacío significa que no está configurado. Se recomienda agregarlos a .bashrc.

SkorpEN
fuente
0

En fedora 27 resolví el problema haciendo esto:

sudo rm -f  /usr/local/lib/node_modules/npm
sudo dnf reinstall nodejs
tbo47
fuente
0

Este es un video útil y una publicación de blog sobre cómo eliminar el nodo del sistema operativo de su computadora. Es un método diferente de eliminación basado en cómo instaló el nodo en primer lugar (brew vs. archivo binario descargado de https://nodejs.org/en/

  • si instaló el nodo con Homebrew, entonces el nodo de desinstalación brew funcionará. Verifique eso ejecutando un node -vcomando en su terminal.

  • De lo contrario, y si ha instalado el archivo binario desde el sitio web de nodejs entonces usted tiene que ejecutar este comando en su terminal: sudo rm -rf /usr/local/{bin/{node,npm},lib/node_modules/npm,lib/node,share/man/*/node.*}. Nuevamente, verifique eso ejecutando un comando node -v.

  • En ambos casos, la eliminación exitosa del nodo debería provocar que bash no reconozca qué nodo es si se elimina por completo

oalbacha
fuente
2
Un enlace a una solución es bienvenido para respaldar una respuesta, pero la respuesta que publique debe ser completamente autónoma, es decir, no requerir que los visitantes hagan clic en otro sitio que puede contener contenido inesperado o malicioso, o que ya no exista.
tripleee
0

En mi macOS (10.13.3), lo resolví después de reinstalar Node version manager .

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash
source ~/.bashrc
usuario9869932
fuente
0

Esto puede suceder cuando la npm/libcarpeta se vació por algún motivo (también podría suceder debido a problemas de permisos en el último uso).

Una reinstalación del nodo podría resolver el problema (como se indica en otras respuestas aquí), pero sugeriría usar una herramienta maravillosa llamada nvm(Node Version Manager), que es capaz de administrar múltiples versiones de nodey npm, esto es principalmente útil en máquinas de desarrollo con más de un proyecto requieren diferentes versiones de nodo.

Cuando instale nvm , este mensaje desaparecerá y tendrá la última versión de nodey npmpara usar.

Para ver la lista de versiones de nodo instaladas actualmente en su nvm, simplemente ejecute:

nvm list

Para instalar y usar una nueva versión de nodo, ejecute:

nvm install <node_version>

Por ejemplo, para instalar la última versión del nodo 10.x, ejecute:

nvm install 10

Para cambiar a la versión instalada actualmente, ejecute:

nvm use <node_version>

Para cambiar a la versión original del nodo del sistema, simplemente ejecute:

nvm use system

Espero que esto ayude.

¡Buena suerte!

Slavik Meltser
fuente