webpack no se reconoce como un comando interno o externo, programa operativo o archivo por lotes

125

Estoy aprendiendo React.js y estoy usando Windows 8 OS. Tengo que navegar a mi carpeta raíz

1.Created the package.json file by npm init
2. install webpack by npm install -S webpack.now webpack has been downloaded to my modules folder
3. install webpack globally by typing npm install webpack -g
4. i am also having a webpack.config.js in my root folder which contains the source and ouput directory
5. when i type the webpack command i am getting the below error.

webpack no se reconoce como un comando interno o externo, programa operativo o archivo por lotes

Yasar
fuente
Tuve este problema, pero después de reiniciar IDE (PHPStorm en mi caso) se resolvió el problema
Arthur Tsidkilov

Respuestas:

81

Tuve este problema durante mucho tiempo también. (webpack instalado globalmente, etc. pero aún no reconocido) Resultó que no he especificado la variable de entorno para npm (donde está el archivo webpack.cmd), así que agrego a mi variable Path

%USERPROFILE%\AppData\Roaming\npm\

Si está utilizando Powershell, puede escribir el siguiente comando para agregar efectivamente a su ruta:

[Environment]::SetEnvironmentVariable("Path", "$env:Path;%USERPROFILE%\AppData\Roaming\npm\", "User")

IMPORTANTE: No olvide cerrar y volver a abrir su ventana de PowerShell para aplicar esto.

Espero eso ayude.

Vlado
fuente
66
bueno, estoy atrapado en el mismo lugar ... ¿Puedes darme tu respuesta?
Intruso
2
Estaba siguiendo todos los pasos pero no funcionó y finalmente me di cuenta de que no abría CMD como administrador.
Hosein Djadidi
1
Mejor configurado en% APPDATA% \ npm
Nikolay Petyukh
156

La mejor solución a este problema es instalarlo Webpackglobalmente.

Esto siempre funciona y funcionó para mí. Intenta debajo del comando.

npm install -g webpack
srikanth_k
fuente
36
Creo que debe tenerse en cuenta que el uso de -g instala el paquete web globalmente, lo que quizás no desee si tiene varios proyectos que pueden requerir diferentes versiones del paquete web.
Uber Schnoz
92

Como alternativa, si tiene Webpack instalado localmente, puede especificar explícitamente dónde debe buscar el símbolo del sistema para encontrarlo, así:

node_modules\.bin\webpack

(Esto supone que estás dentro del directorio con tu package.jsony que ya lo has ejecutado npm install webpack).

BalinKingOfMoria Reinstate CMs
fuente
44
De acuerdo con Max, la razón es que se recomienda tener webpack instalado localmente (en devDependencies). Sin embargo, mi problema fue un poco diferente, al agregar webpack como un paso previo a la compilación en VS 2017, pensé que VS era lo suficientemente inteligente como para encontrar el webpack cmd localmente sin la ruta completa
JimiSweden
@JimiSweden, ¿intentaste agregar node_modules\.bina herramientas-> configurar herramientas externas
Max Favilli
44
Podría intentar usar npx webpackque también comprueba en ./node_modules/.binlugar de jugar con los caminos.
Manfred
46

npm install -g webpack-dev-server resolverá tu problema

Araali Farooq
fuente
2
Puede resolver el mensaje de error OP publicado, pero esta no es una buena solución al problema ya que agrega más dependencias que solo resolver el paquete web que falta. Vea cualquiera de las otras respuestas de alta votación para obtener mejores alternativas.
angularsen
2
Como ya han señalado diferentes colaboradores (ver otras respuestas / comentarios), la instalación global se considera una mala práctica, ya que te bloquea a una versión. Ver también webpack.js.org/guides/installation
Manfred
16

Intente eliminar node_modules en el directorio local y vuelva a ejecutar npm install .

Dushyant Singh
fuente
1
Gracias, esto realmente lo hizo por mí, probé las otras respuestas y estuve aquí enojado con el mundo durante más de una hora
Clint
12

Agregue el comando webpack como un script npm en su package.json.

{
    "name": "react-app",
    "version": "1.0.0",
    "scripts": {
      "compile": "webpack --config webpack.config.js"
    }
}

Entonces corre

npm ejecutar compilar

Cuando se instala el paquete web, crea un binario en la carpeta ./node_modules/.bin. scripts npm también busca ejecutables creados en esta carpeta

Nikhil Ranjan
fuente
no funciona - npm install -g webpack-dev-server es el comando correcto
TarmoPikaro
11

Webpack CLI ahora está en un paquete separado y debe instalarse globalmente para usar el comando 'webpack':

npm install -g webpack-cli

EDITAR: Mucho ha cambiado. La gente de Webpack no recomienda instalar la CLI de forma global (o por separado). Este problema debería solucionarse ahora, pero el comando de instalación adecuado es:

npm install --save-dev webpack

Esta respuesta fue originalmente pensada como una "solución" para el problema de los OP.

averroes
fuente
1
"debe instalarse globalmente" no es correcto como lo entiendo. Incluso la gente de webpack desaconseja. Ver webpack.js.org/guides/installation
Manfred el
4

tienes que instalar webpack y webpack-cli en el mismo ámbito.

npm i -g webpack webpack-cli

o,

npm i webpack webpack-cli

si lo instala localmente, debe llamarlo específicamente

node_modules/.bin/webpack -v
Irteza Asad
fuente
O, si se instala localmente, puede usar npx webpack(probado con npm versión 6.5.0, webpack 4.28.4 y webpack-cli 3.2.1)
Manfred
ese es el boleto
Cekaleek
npm i -g webpack webpack-cli
VnDevil
4

También experimentamos este problema y me gustan todas las respuestas que sugieren usar un script definido en package.json.

Para nuestras soluciones, a menudo utilizamos la siguiente secuencia:

  1. npm install --save-dev webpack-cli(si usa webpack v4 o posterior, de lo contrario npm install --save-dev webpack, use , consulte la instalación de webpack , recuperada el 19 de enero de 2019)
  2. npx webpack

El paso 1 es único. El paso 2 también verifica ./node_modules/.bin. También puede agregar el segundo paso como un script npm package.json, por ejemplo:

{
   ...
   "scripts": {
      ...
      "build": "npx webpack --mode development",
      ...
   },
   ...
}

y luego se usa npm run buildpara ejecutar este script.

Probé esta solución con npm versión 6.5.0, webpack versión 4.28.4 y webpack-cli versión 3.2.1 en Windows 10, ejecutando todos los comandos dentro de una ventana de PowerShell. Mi versión de nodejs es / era 10.14.2. También probé esto en Ubuntu Linux versión 18.04.

Aconsejaría no instalar webpack a nivel mundial, en particular si está trabajando con muchos proyectos diferentes, cada uno de los cuales puede requerir una versión diferente de webpack. Instalar webpack globalmente lo bloquea a una versión particular en todos los proyectos en la misma máquina.

Manfredo
fuente
4

Tal vez una instalación limpia solucionará el problema. Este "comando" elimina todos los módulos anteriores y los vuelve a instalar, tal vez mientras el módulo webpack se descarga e instala de forma incompleta.

npm clean-install
muhamad zolfaghari
fuente
3

Tuve el mismo problema y acabo de agregar el bloque de código en mi archivo package.json;

 "scripts": {
   "build": "webpack -d --progress --colors"
 }

y luego ejecute el comando en la terminal;

npm run build
B.Brave
fuente
3

Instalar WebPack globalmente

npm install --global webpack
Alper Ebicoglu
fuente
2

Simplemente ejecute su línea de comando (cmd) como administrador.

ZOALIT
fuente
2

Si acaba de clonar un repositorio, primero debe ejecutar

npm install

El error que obtendrá se generará si le faltan dependencias del proyecto. El comando anterior los descargará e instalará.

PrestonDocks
fuente
2
npx webpack

Me ha funcionado. Estoy usando Windows 10 e instalé webpack localmente.

aystiro
fuente
2

Tuve este problema al actualizar a React 16.12.0 .

Tuve dos errores, uno con respecto al paquete web y el otro con respecto a la tienda al representar el DOM.

Error de paquete web:

webpack no se reconoce como un comando interno o externo, programa operativo o archivo por lotes

Solución de paquete web:

  1. Cerrar la solución VS relacionada
  2. Eliminar node_modulescarpeta
  3. Eliminado package-lock.json
  4. npm install
  5. npm rebuild
  6. Repitió esto 2-3 veces

Error de tienda:

Type Store <()> no es asignable para escribir Store <any, AnyAction>

Solución de tienda:

Las sugerencias para actualizar mi versión de React no solucionaron este error, pero independientemente de eso recomendaría hacerlo.

Mi código terminó luciendo así:

ReactDOM.render(
        <Provider store={store as any}>
            <ConnectedApp />
        </Provider>,
        document.getElementById('app')
    );

Según esta solución

EGC
fuente
1

Recibí el mismo error, ninguna de las soluciones funcionó para mí, reinstalé el nodo y eso reparó mi entorno, todo funciona nuevamente.

Simon Xiao
fuente
Esto es lo que tuve que hacer también. Intenté al menos otras tres "soluciones" proporcionadas aquí y ninguna funcionó, excepto desinstalar y reinstalar Node nuevamente.
Carcaj
1

Para mí funcionó instalar webpack por separado. Tan simplemente:

$npm install
$npm install webpack

No estoy seguro de por qué esto debería ser necesario, pero funcionó.

Katinka Hesselink
fuente
1

Estos comandos dados a continuación funcionaron para mí.

npm cache clean --force
npm install -g webpack

Nota : ejecute estos comandos como administrador. Una vez instalado, cierre el símbolo del sistema y reinícielo para ver los cambios aplicados.

Nand Kishor
fuente
1

Si crea una carpeta repetitiva para sus proyectos JS para que pueda usar módulos JS, webpacky Babelson excelentes herramientas.

No instale webpackglobalmente y después de instalar las versiones más recientes de ambos, su package.jsonarchivo estará cargado y listo para copiar para futuros proyectos.

Asegúrese de eliminar la node_modulescarpeta para disminuir el tamaño del archivo en su carpeta repetitiva y luego reinstalar el uso de node_modules npm install.

Olvidé ejecutar npm install y seguí recibiendo este error cuando intentaba ejecutar mi servidor de desarrollo webpack hasta que me di cuenta de que necesitaba ejecutar la npm installinstalación node_modulesy luego funcionó.

Jason Bar
fuente
Eliminar node_modules + npm install me puso en marcha nuevamente. ¡Gracias!
Brandon Barkley
0

La solución para mí fue instalar localmente webpack como devDependency. Aunque lo tengo ya devDependenciesque no estaba instalado en la carpeta node_modules. Entonces corrí npm install --only=dev

Gaviota
fuente
-1

A veces, npm install -g webpack no se guarda correctamente. Es mejor usar npm install webpack --save . Funcionó para mi.

Amartya Banerjee
fuente
1
-g se instala globalmente (no su proyecto local node_modules + package.json) mientras que --save se instala localmente (en su nodo_modules + package.json local), por lo que esta respuesta es incorrecta.
George
-1

Tuve el mismo problema y no pude resolverlo. Revisé cada línea de código y no pude encontrar mi error. Luego me di cuenta de que instalé webpack en la carpeta incorrecta. Mi error no estaba prestando atención a la carpeta en la que estaba instalando webpack.

Michael Neely
fuente