webpack nie jest rozpoznawany jako polecenie wewnętrzne lub zewnętrzne, program operacyjny lub plik wsadowy

125

Uczę się React.js i używam systemu Windows 8 OS.i przejdź do mojego folderu głównego

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 nie jest rozpoznawany jako polecenie wewnętrzne lub zewnętrzne, program operacyjny lub plik wsadowy

yasar
źródło
Miałem ten problem, ale po ponownym uruchomieniu IDE (w moim przypadku PHPStorm) problem został rozwiązany
Arthur Tsidkilov

Odpowiedzi:

81

Ja też miałem ten problem przez długi czas. (webpack zainstalowany globalnie itp. ale nadal nie rozpoznany) Okazało się, że nie podałem zmiennej środowiskowej dla npm (gdzie jest plik webpack.cmd siedzi) Więc dodaję do zmiennej Path

%USERPROFILE%\AppData\Roaming\npm\

Jeśli używasz programu PowerShell, możesz wpisać następujące polecenie, aby skutecznie dodać do swojej ścieżki:

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

WAŻNE: Nie zapomnij zamknąć i ponownie otworzyć okna PowerShell, aby to zastosować.

Mam nadzieję, że to pomoże.

Vlado
źródło
6
Cóż, utknąłem w tym samym miejscu ... Czy możesz rozwinąć swoją odpowiedź
Intruz
2
Śledziłem wszystkie kroki, ale to nie zadziałało, a potem w końcu zdałem sobie sprawę, że nie otworzyłem CMD jako administrator.
Hosein Djadidi
1
Lepiej ustawić na% APPDATA% \ npm
Nikolay Petyukh
156

Lepszym rozwiązaniem tego problemu jest instalacja Webpackglobalna.

To zawsze działa i działało dla mnie. Wypróbuj poniższe polecenie.

npm install -g webpack
srikanth_k
źródło
36
Myślę, że należy zauważyć, że użycie opcji -g powoduje globalną instalację pakietu webpack, czego możesz nie chcieć, jeśli masz wiele projektów, które mogą wymagać różnych wersji pakietu.
Uber Schnoz
92

Alternatywnie, jeśli masz lokalnie zainstalowany pakiet Webpack, możesz jawnie określić, gdzie powinien szukać wiersza polecenia, aby go znaleźć, na przykład:

node_modules\.bin\webpack

(Zakłada to, że jesteś w katalogu ze swoim package.jsoni że już uruchomiłeś npm install webpack.)

BalinKingOfMoria Przywróć CM
źródło
4
Zgadzam się z Maxem, ponieważ zaleca się lokalną instalację pakietu webpacka (w devDependencies) - Mój problem był jednak trochę inny, kiedy dodawałem webpack jako krok przed kompilacją w VS 2017, pomyślałem, że VS był wystarczająco inteligentny, aby znaleźć webpack cmd lokalnie bez pełnej ścieżki
JimiSweden
@JimiSweden czy próbowałeś dodać node_modules\.bindo narzędzi-> skonfigurować narzędzia zewnętrzne
Max Favilli
4
Możesz spróbować użyć npx webpackktóre również sprawdza, ./node_modules/.binzamiast bawić się ścieżkami.
Manfred
47

npm install -g webpack-dev-server rozwiąże Twój problem

Araali Farooq
źródło
2
Może rozwiązać komunikat o błędzie wysłany OP, ale nie jest to dobre rozwiązanie problemu, ponieważ dodaje więcej zależności niż tylko rozwiązanie brakującego pakietu internetowego. Zobacz inne wysoko ocenione odpowiedzi, aby znaleźć lepsze alternatywy.
angularsen,
2
Jak już zauważyli różni współtwórcy (zobacz inne odpowiedzi / komentarze), instalacja globalna jest uważana za złą praktykę, ponieważ ogranicza cię do jednej wersji. Zobacz także webpack.js.org/guides/installation
Manfred
17

Spróbuj usunąć moduły node_modules w katalogu lokalnym i ponownie uruchom instalację npm .

Dushyant Singh
źródło
1
Dzięki to rzeczywiście zrobił to dla mnie, próbowałem innych odpowiedzi i był tu zła na świecie przez ponad godzinę
Clint
12

Dodaj polecenie webpack jako skrypt npm w pliku package.json.

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

Następnie uruchomić

npm uruchom kompilację

Kiedy pakiet sieciowy jest instalowany, tworzy plik binarny w folderze ./node_modules/.bin. Skrypty npm szukają również plików wykonywalnych utworzonych w tym folderze

Nikhil Ranjan
źródło
nie działa - npm install -g webpack-dev-server jest poprawnym poleceniem
TarmoPikaro
11

Interfejs wiersza polecenia Webpack jest teraz w osobnym pakiecie i należy go zainstalować na całym świecie, aby można było użyć polecenia „webpack”:

npm install -g webpack-cli

EDYCJA: Wiele się zmieniło. Osoby korzystające z pakietu Webpack nie zalecają globalnego instalowania interfejsu CLI (ani osobno). Ten problem powinien zostać rozwiązany teraz, ale prawidłowe polecenie instalacji to:

npm install --save-dev webpack

Ta odpowiedź miała pierwotnie służyć jako „obejście” problemu PO.

averroes
źródło
1
Rozumiem, że wyrażenie „należy zainstalować globalnie” nie jest poprawne. Nawet ludzie z pakietu webpack odradzają to. Zobacz webpack.js.org/guides/installation
Manfred
4

musisz zainstalować webpack i webpack-cli w tym samym zakresie.

npm i -g webpack webpack-cli

lub,

npm i webpack webpack-cli

jeśli instalujesz go lokalnie, musisz go specjalnie nazwać

node_modules/.bin/webpack -v
Irteza Asad
źródło
Lub, jeśli jest zainstalowany lokalnie, możesz użyć npx webpack(testowane z wersją npm 6.5.0, webpack 4.28.4 i webpack-cli 3.2.1)
Manfred
taki jest bilet
Cekaleek
npm i -g
webpack webpack
4

Doświadczyliśmy również tego problemu i podobają mi się wszystkie odpowiedzi, które sugerują użycie skryptu zdefiniowanego w package.json.

W naszych rozwiązaniach często stosujemy następującą sekwencję:

  1. npm install --save-dev webpack-cli (jeśli używasz pakietu webpack v4 lub nowszego, w przeciwnym razie użyj npm install --save-dev webpack , zobacz instalację pakietu internetowego , pobrano 19 stycznia 2019 r.)
  2. npx webpack

Krok 1 jest jednorazowy. Krok 2 również sprawdza ./node_modules/.bin. Możesz również dodać drugi krok jako skrypt npm package.json, na przykład:

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

a następnie użyj npm run build do wykonania tego skryptu.

Przetestowałem to rozwiązanie z npm w wersji 6.5.0, webpack w wersji 4.28.4 i webpack-cli w wersji 3.2.1 w systemie Windows 10, wykonując wszystkie polecenia w oknie PowerShell. Moja wersja nodejs to / była 10.14.2. Przetestowałem to również na Ubuntu Linux w wersji 18.04.

Odradzałbym instalowanie webpacka globalnie, szczególnie jeśli pracujesz z wieloma różnymi projektami, z których każdy może wymagać innej wersji webpacka. Globalna instalacja pakietu WebPack blokuje dostęp do określonej wersji we wszystkich projektach na tym samym komputerze.

Manfred
źródło
4

Może czysta instalacja rozwiąże problem. To „polecenie” usuwa wszystkie poprzednie moduły i instaluje je ponownie, być może wtedy, gdy moduł webpack jest niekompletnie pobierany i instalowany.

npm clean-install
muhamad zolfaghari
źródło
3

Miałem ten sam problem i właśnie dodałem blok kodu do mojego pliku package.json;

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

a następnie uruchom polecenie na terminalu;

npm run build
B.Brave
źródło
3

Zainstaluj WebPack na całym świecie

npm install --global webpack
Alper Ebicoglu
źródło
2

Po prostu uruchom wiersz poleceń (cmd) jako administrator.

ZOALIT
źródło
2

Jeśli właśnie sklonowałeś repozytorium, musisz najpierw uruchomić

npm install

Błąd, który otrzymujesz, zostanie wygenerowany, jeśli brakuje zależności projektu. Powyższe polecenie pobierze i zainstaluje je.

PrestonDocks
źródło
2
npx webpack

To działa dla mnie. Używam systemu Windows 10 i zainstalowałem pakiet internetowy lokalnie.

aystiro
źródło
2

Miałem ten problem podczas aktualizacji do React 16.12.0 .

Podczas renderowania DOM wystąpiły dwa błędy, jeden dotyczący webpacka, a drugi dotyczący sklepu .

Błąd pakietu internetowego:

webpack nie jest rozpoznawany jako polecenie wewnętrzne lub zewnętrzne, program operacyjny lub plik wsadowy

Rozwiązanie Webpack:

  1. Zamknij powiązane rozwiązanie VS.
  2. Usuń node_modulesfolder
  3. Usunięto package-lock.json
  4. npm install
  5. npm rebuild
  6. Powtórz to 2-3 razy

Błąd sklepu:

Typ Store <()> nie można przypisać do typu Store <any, AnyAction>

Rozwiązanie sklepu:

Sugestie dotyczące aktualizacji mojej wersji Reacta nie naprawiły tego błędu, ale niezależnie od tego, poleciłbym to zrobić.

Mój kod wyglądał tak:

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

Jak na to rozwiązanie

EGC
źródło
1

Otrzymałem ten sam błąd, żadne z rozwiązań nie zadziałało, przeinstalowałem węzeł i to naprawiło moje środowisko, wszystko znowu działa.

Simon Xiao
źródło
To też musiałem zrobić. Wypróbowałem co najmniej trzy inne "rozwiązania" podane tutaj i żadne nie działało z wyjątkiem odinstalowania i ponownej instalacji Node.
Quiver
1

U mnie zadziałało, aby zainstalować osobno pakiet internetowy. Po prostu:

$npm install
$npm install webpack

Nie jestem pewien, dlaczego miałoby to być konieczne, ale zadziałało.

Katinka Hesselink
źródło
1

Poniższe polecenia zadziałały dla mnie.

npm cache clean --force
npm install -g webpack

Uwaga - uruchom te polecenia jako administrator. Po zainstalowaniu zamknij wiersz polecenia i uruchom go ponownie, aby zobaczyć zastosowane zmiany.

Nand Kishor
źródło
1

Jeśli utworzysz standardowy folder dla swoich projektów JS, abyś mógł używać modułów JS, webpacki Babelsą świetnymi narzędziami.

Nie instaluj webpackglobalnie, a po zainstalowaniu najnowszych wersji obu, package.jsonplik zostanie załadowany i będzie gotowy do skopiowania dla przyszłych projektów.

Pamiętaj, aby usunąć node_modulesfolder, aby zmniejszyć rozmiar pliku w folderze standardowym, a następnie ponownie zainstalować moduł node_modules npm install.

Zapomniałem uruchomić instalację npm i ciągle otrzymywałem ten błąd podczas próby uruchomienia serwera deweloperskiego webpack, dopóki nie zdałem sobie sprawy, że muszę uruchomić npm installinstalację, node_modulesa potem zadziałało.

Jason Bar
źródło
Usunięcie node_modules + instalacja npm sprawiła, że ​​znowu zacząłem. Dzięki!
Brandon Barkley
0

Rozwiązaniem dla mnie była lokalna instalacja pakietu webpacka jako devDependency. Chociaż mam to, ponieważ devDependenciesnie został zainstalowany w folderze node_modules. Więc uciekłem npm install --only=dev

Mewa
źródło
-1

Czasami npm install -g webpack nie zapisuje się poprawnie. Lepiej użyć npm install webpack --save . U mnie zadziałało.

Amartya Banerjee
źródło
1
-g instaluje się globalnie (nie twój lokalny projekt node_modules + package.json), podczas gdy --save instaluje lokalnie (w twoim lokalnym node_modules + package.json), więc ta odpowiedź jest błędna.
George,
-1

Miałem ten sam problem i nie mogłem go rozgryźć. Przeszukałem każdą linię kodu i nie mogłem znaleźć swojego błędu. Wtedy zdałem sobie sprawę, że zainstalowałem webpack w niewłaściwym folderze. Mój błąd nie zwracał uwagi na folder, do którego instalowałem pakiet internetowy.

Michael Neely
źródło