webpack non è riconosciuto come comando interno o esterno, programma eseguibile o file batch


125

Sto imparando React.js e sto usando Windows 8 OS. Devo andare alla mia cartella principale

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 non è riconosciuto come comando interno o esterno, programma eseguibile o file batch


Ho avuto questo problema, ma dopo aver riavviato IDE (PHPStorm nel mio caso) il problema è stato risolto
Arthur Tsidkilov

Risposte:


81

Anch'io ho avuto questo problema per molto tempo. (webpack installato globalmente ecc. ma ancora non riconosciuto) Si è scoperto che non ho specificato la variabile di ambiente per npm (dove si trova il file webpack.cmd seduto) Quindi aggiungo alla mia variabile Path

%USERPROFILE%\AppData\Roaming\npm\

Se stai usando Powershell, puoi digitare il seguente comando per aggiungere in modo efficace al tuo percorso:

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

IMPORTANTE: non dimenticare di chiudere e riaprire la finestra di PowerShell per applicarlo.

Spero che sia d'aiuto.


6
beh, sono bloccato nello stesso posto ... Puoi per favore elaborare la tua risposta
Intruso

2
Stavo seguendo tutti i passaggi ma non ha funzionato poi finalmente mi sono reso conto che non avevo aperto CMD come amministratore.
Hosein Djadidi

1
Meglio impostare su% APPDATA% \ npm
Nikolay Petyukh

156

La soluzione migliore a questo problema è installare Webpackglobalmente.

Funziona sempre e ha funzionato per me. Prova sotto il comando.

npm install -g webpack

36
Penso che dovrebbe essere notato che l'uso di -g installa il webpack a livello globale, cosa che potresti non volere se hai più progetti che potrebbero richiedere diverse versioni di webpack.
Uber Schnoz

92

In alternativa, se hai Webpack installato localmente, puoi specificare esplicitamente dove dovrebbe cercare il prompt dei comandi per trovarlo, in questo modo:

node_modules\.bin\webpack

(Questo presuppone che tu sia all'interno della directory con il tuo package.jsone che tu abbia già eseguito npm install webpack.)


4
D'accordo con Max, il motivo è che si consiglia di avere webpack installato localmente (in devDependencies) - Il mio problema era un po 'diverso, però, quando si aggiungeva webpack come fase di pre-compilazione in VS 2017, ho pensato che VS fosse abbastanza intelligente da trovare il webpack cmd localmente senza il percorso completo
JimiSweden

@JimiSweden hai provato ad aggiungere node_modules\.bina strumenti-> configura strumenti esterni
Max Favilli

4
Potresti provare a usare npx webpackche controlla anche ./node_modules/.bininvece di armeggiare con i percorsi.
Manfred

47

npm install -g webpack-dev-server risolverà il tuo problema


2
Potrebbe risolvere il messaggio di errore pubblicato da OP, ma questa non è una buona soluzione al problema poiché aggiunge più dipendenze rispetto alla semplice risoluzione del webpack mancante. Vedi una qualsiasi delle altre risposte più votate per alternative migliori.
angularsen

2
Come già sottolineato da diversi contributori (vedi altre risposte / commenti), l'installazione globale è considerata una cattiva pratica in quanto ti blocca a una versione. Vedi anche webpack.js.org/guides/installation
Manfred

17

Prova a eliminare node_modules nella directory locale e riesegui l' installazione di npm .


1
Grazie, questo in realtà lo ha fatto per me, ho provato le altre risposte ed è stato qui arrabbiato con il mondo per oltre un'ora
Clint

12

Aggiungi il comando webpack come script npm nel tuo package.json.

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

Allora corri

npm esegue la compilazione

Quando il webpack è installato, crea un binario nella cartella ./node_modules/.bin. Gli script npm cercano anche gli eseguibili creati in questa cartella


non funziona - npm install -g webpack-dev-server è il comando corretto
TarmoPikaro

11

La CLI di Webpack si trova ora in un pacchetto separato e deve essere installata globalmente per poter utilizzare il comando 'webpack':

npm install -g webpack-cli

EDIT: molto è cambiato. La gente di Webpack non consiglia di installare la CLI globalmente (o separatamente per quella materia). Questo problema dovrebbe essere risolto ora, ma il comando di installazione corretto è:

npm install --save-dev webpack

Questa risposta era originariamente intesa come una "soluzione" per il problema dei PO.


1
"deve essere installato globalmente" non è corretto a quanto ho capito. Anche la gente del webpack lo sconsiglia. Vedi webpack.js.org/guides/installation
Manfred

4

devi installare webpack e webpack-cli nello stesso ambito.

npm i -g webpack webpack-cli

o,

npm i webpack webpack-cli

se lo installi localmente devi chiamarlo specificatamente

node_modules/.bin/webpack -v

Oppure, se installato localmente, potresti usare npx webpack(testato con npm versione 6.5.0, webpack 4.28.4 e webpack-cli 3.2.1)
Manfred

questo è il biglietto
Cekaleek

npm i -g webpack webpack-cli
VnDevil

4

Abbiamo anche riscontrato questo problema e mi piacciono tutte le risposte che suggeriscono di utilizzare uno script definito in package.json.

Per le nostre soluzioni usiamo spesso la seguente sequenza:

  1. npm install --save-dev webpack-cli(se stai usando webpack v4 o successiva, altrimenti usa npm install --save-dev webpack, vedi installazione webpack , recuperato 19 gennaio 2019)
  2. npx webpack

Il passaggio 1 è una tantum. Anche il passaggio 2 controlla ./node_modules/.bin. Puoi anche aggiungere il secondo passaggio come script npm package.json, ad esempio:

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

e quindi utilizzare npm run buildper eseguire questo script.

Testata questa soluzione con npm versione 6.5.0, webpack versione 4.28.4 e webpack-cli versione 3.2.1 su Windows 10, eseguendo tutti i comandi all'interno di una finestra di PowerShell. La mia versione di nodejs è / era 10.14.2. L'ho testato anche su Ubuntu Linux versione 18.04.

Sconsiglio di installare webpack a livello globale, in particolare se stai lavorando con molti progetti diversi, ognuno dei quali potrebbe richiedere una versione diversa di webpack. L'installazione di webpack a livello globale ti blocca a una particolare versione su tutti i progetti sulla stessa macchina.


4

Forse un'installazione pulita risolverà il problema. Questo "comando" rimuove tutti i moduli precedenti e li reinstalla, forse mentre il modulo webpack è scaricato e installato in modo incompleto.

npm clean-install

3

Ho avuto lo stesso problema e ho appena aggiunto il blocco di codice nel mio file package.json;

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

e quindi eseguire il comando sul terminale;

npm run build


2

Basta eseguire la riga di comando (cmd) come amministratore.


2

Se hai appena clonato un repository, devi prima eseguire

npm install

L'errore che ottieni verrà generato se mancano le dipendenze del progetto. Il comando precedente li scaricherà e li installerà.


2
npx webpack

Ha funzionato per me. Sto usando Windows 10 e ho installato webpack in locale.


2

Ho riscontrato questo problema durante l'aggiornamento a React 16.12.0 .

Ho avuto due errori uno riguardante webpack e l'altro riguardante il negozio durante il rendering del DOM.

Errore Webpack:

webpack non è riconosciuto come comando interno o esterno, programma eseguibile o file batch

Soluzione Webpack:

  1. Chiudi la soluzione VS correlata
  2. Elimina node_modules cartella
  3. Deleted package-lock.json
  4. npm install
  5. npm rebuild
  6. Ripetuto 2-3 volte

Errore del negozio:

Il tipo Store <()> non è assegnabile al tipo Store <any, AnyAction>

Soluzione negozio:

I suggerimenti per aggiornare la mia versione di React non hanno risolto questo errore per me, ma a prescindere, consiglierei di farlo.

Il mio codice ha finito per assomigliare a questo:

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

Secondo questa soluzione


1

Ho ricevuto lo stesso errore, nessuna delle soluzioni ha funzionato per me, ho reinstallato il nodo e questo ha riparato il mio ambiente, tutto funziona di nuovo.


Questo è quello che dovevo fare anch'io. Ho provato almeno altre tre "soluzioni" fornite qui e nessuna ha funzionato tranne che per la disinstallazione e la reinstallazione di Node.
Faretra

1

Per me ha funzionato per installare webpack separatamente. Quindi semplicemente:

$npm install
$npm install webpack

Non sono sicuro del motivo per cui dovrebbe essere necessario, ma ha funzionato.


1

Questi comandi indicati di seguito hanno funzionato per me.

npm cache clean --force
npm install -g webpack

Nota : eseguire questi comandi come amministratore. Una volta installato, chiudi il prompt dei comandi e riavvialo per vedere le modifiche applicate.


1

Se crei una cartella boilerplate per i tuoi progetti JS in modo da poter utilizzare i moduli JS webpackeBabel sono grandi strumenti.

Non installare webpackglobalmente e dopo aver installato le versioni più recenti di entrambe, il tuo package.jsonfile verrà caricato e pronto per essere copiato per progetti futuri.

Assicurati di eliminare la node_modulescartella per ridurre le dimensioni del file nella cartella boilerplate e quindi di reinstallare l'uso di node_modules npm install.

Ho dimenticato di eseguire l'installazione di npm e ho continuato a ricevere questo errore durante il tentativo di eseguire il mio server di sviluppo webpack finché non ho capito che dovevo eseguire npm installl'installazione node_modulese poi ha funzionato.


Eliminare node_modules + installazione di npm mi ha fatto andare di nuovo. Grazie!
Brandon Barkley,


0

La soluzione per me è stata l'installazione locale di webpack come devDependency. Anche se ce l'ho perché non devDependenciesè stato installato nella cartella node_modules. Quindi ho corso npm install --only=dev


-1

A volte npm install -g webpack non viene salvato correttamente. Meglio usare npm install webpack --save . Ha funzionato per me.


1
-g installa globalmente (non il tuo progetto locale node_modules + package.json) mentre --save installa localmente (nel tuo node_modules + package.json locale) quindi questa risposta è sbagliata.
George,

-1

Ho avuto lo stesso problema e non sono riuscito a capirlo. Ho esaminato ogni riga di codice e non sono riuscito a trovare il mio errore. Poi ho capito di aver installato webpack nella cartella sbagliata. Il mio errore non stava prestando attenzione alla cartella in cui stavo installando webpack.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.