Błąd: nie można znaleźć modułu „webpack”


152

Właśnie zaczynam pracę z pakietem webpack i mam trudności z utworzeniem próbki zawierającej wiele punktów wejścia . Plik webpack.config.js w przykładzie zawiera wiersz

 var CommonsChunkPlugin = require("../../lib/optimize/CommonsChunkPlugin");

co mi się nie udaje z powodu błędu

Error: Cannot find module '../../lib/optimize/CommonsChunkPlugin'

Przeszukując okolice, znalazłem inne przykłady użycia CommonsChunkPlugin z wyrażeniem

var commonsPlugin = new webpack.optimize.CommonsChunkPlugin("common.js");

co kończy się błędem

ReferenceError: webpack is not defined

Dalsze wyszukiwanie znalazło wiele przykładów, w tym

var webpack = require('webpack');

i moja kompilacja teraz zawodzi

Error: Cannot find module 'webpack'

Nie wiem, jak mam postępować.


2
Biegałeś npm install webpackwcześniej?
Johannes Ewald

Tak. Webpack jest zainstalowany i działa na innych przykładach. Podczas próby dodania wtyczki do przykładu z wieloma punktami wejścia wpadłem w kłopoty.
wyd.

Error: Cannot find module 'webpack'to błąd węzła. Więc to nie ma nic wspólnego z samym webpackiem (afaict). Wygląda na to, że node szuka w niewłaściwych folderach ...
Johannes Ewald

6
Rozumiem, npm install -g webpackdla mnie też nie działa. Ale tak się dzieje npm install webpack- upewnij się, że jesteś w folderze głównym aplikacji, kiedy dzwonisz, npm install webpacka następnie sprawdź, czy moduł istnieje w node_modulesfolderze. Wygląda również na to, że webpackpotrzebuje fsevents(opcjonalnego) modułu w systemach linux - używam Windows, więc nie jestem pewien - spróbuj zainstalować fseventsrównież
AndreiDMS

3
Jak powiedziałem powyżej, instalacja globalna również nie zadziałała, więc spróbuj zainstalować ją webpackw lokalnym folderze aplikacji, używając npm install webpack, bez-g
AndreiDMS.

Odpowiedzi:


272

Połącz pakiet zainstalowany globalnie ze swoim projektem

npm link webpack

7
To jest najprostsza odpowiedź.
Thomas W

1
Na który plik ma wpływ to ustawienie? Nie widziałem żadnych zmian w plikach JSON. Czy możesz to rozwinąć?
Royi Namir

i tak nie wydaje się, aby odłączyć. webpack-dev-server uległ po tym awarii.
Plankton

Po miesiącu nie mogąc tego zrobić, byłem bliski poddania się i kontynuowania pracy z Angularjs. To w końcu zadziałało! Dziękuję Ci.
NestorArturo

Instaluję webpacka, ale uruchamiam webpacka bez pokazania żadnego parametru, tego typu wiadomość: który z nich chcesz zainstalować (webpack-cli / web-command)
Ng Sharma

59

Podczas pracy na Windowsie zainstalowałem lokalnie webpack i to rozwiązało mój problem

Tak więc w wierszu poleceń przejdź do katalogu, w którym chcesz uruchomić pakiet webpacka, zainstaluj go lokalnie (bez -g) i ciesz się ...


10
ale nie wspomniałeś o tym, jak zainstalować to „lokalnie”
jpganz18,

lokalnie to npm install webpack, bez użycia -g, jak wspomniano. To zadziałało w moim przypadku.
Honza P.

24

Wydaje się, że jest to typowy problem z systemem Windows. To naprawiło to dla mnie:

Nodejs nie może znaleźć zainstalowanego modułu w systemie Windows?

„Dodaj zmienną środowiskową o nazwie NODE_PATHi ustaw ją na %USERPROFILE%\Application Data\npm\node_modules(Windows XP), %AppData%\npm\node_modules(Windows 7) lub wszędzie tam, gdzie npm instaluje moduły w Twoim stylu Windows. Aby to zrobić raz na zawsze, dodaj to jako zmienną systemową w karta Zaawansowane w oknie dialogowym Właściwości systemu (uruchom control.exe sysdm.cpl, System, 3). "

Zauważ, że w rzeczywistości nie możesz użyć innej zmiennej środowiskowej w ramach wartości NODE_PATH. Oznacza to, że nie tylko kopiuj i wklejaj ten ciąg powyżej, ale ustaw go na rzeczywistą rozwiązaną ścieżkę, taką jakC:\Users\MYNAME\AppData\Roaming\npm\node_modules


1
nie działa dla mnie na Windows 10. Nie ma node_modulesfolderu w C:\Users\MYNAME\AppData\Roaming\npm`. I tried to set wartości NODE_PATH`, C:\Program Files (x86)\nodejs\node_modulesale to nie pomogło
VB_

3
Działa dobrze dla mnie na Windows 10: setx NODE_PATH %AppData%\npm\node_modules. Może być konieczne ponowne uruchomienie, cmdzanim NODE_PATHzmienna będzie dostępna lub również uruchomiona set NODE_PATH=%AppData%\npm\node_modules.
Nux

23

Rozwiązałem ten sam problem, ponownie instalując, wykonując te polecenia

rm -Rf node_modules
rm -f package-lock.json
npm install

rmjest zawsze niebezpiecznym poleceniem, szczególnie w przypadku -f, proszę zauważyć, że przed jego wykonaniem !!!!!


2
Package-lock.json jest winowajcą
Sérgio S. Filho

17

Uruchom poniższe polecenia w Terminalu:

npm install --save-dev webpack

npm install --save-dev webpack-dev-server


9

Miałem ten problem w systemie OS X i wydawało się, że jest to spowodowane niezgodnością wersji między moim zainstalowanym globalnie webpacka moim zainstalowanym lokalnie webpack-dev-server. Aktualizacja obu do najnowszej wersji pozwoliła pozbyć się problemu.


to też działało dla mnie, więc myślę, że warto to rozważyć w różnych scenariuszach, jeśli masz ten problem.
JL Peyret

2

Jeśli zainstalowałeś pakiet węzłów i nadal otrzymujesz komunikat, że pakiet jest niezdefiniowany, możesz mieć problem z linkowaniem PATH do pliku binarnego. Wystarczy wyjaśnić, że plik binarny i plik wykonywalny zasadniczo robią to samo, czyli uruchamiają pakiet lub aplikację. ei webpack ... wykonuje pakiet węzłów webpack.

Zarówno w systemie Windows, jak i Linux istnieje globalny folder binarny. W systemie Windows wydaje mi się, że jest to coś w rodzaju C: // Windows / System32, aw Linuksie to usr / bin. Kiedy otwierasz terminal / wiersz poleceń, jego profil łączy zmienną PATH z globalnym folderem bin, dzięki czemu możesz wykonywać z niego pakiety / aplikacje.

Moim najlepszym przypuszczeniem jest to, że globalna instalacja pakietu webpacka nie mogła pomyślnie umieścić pliku wykonywalnego w globalnym folderze binarnym. Bez tego pliku wykonywalnego zostanie wyświetlony komunikat o błędzie. Może to być inny problem, ale można śmiało powiedzieć, że jeśli czytasz to tutaj, globalne uruchamianie webpacka nie działa.

Moim rozwiązaniem tego problemu jest wyeliminowanie globalnego uruchamiania webpacka i połączenie PATH z folderem binarnym node_module, którym jest /node_modules/.bin.

WINDOWS: dodaj node_modules / .bin do swojej PATH. Oto poradnik dotyczący zmiany zmiennej PATH w systemie Windows.

LINUX: Przejdź do katalogu głównego swojego projektu i wykonaj to ...

export PATH:$PWD/node_modules/.bin:$PATH 

W systemie Linux będziesz musiał wykonywać to polecenie za każdym razem, gdy otwierasz terminal. To łącze pokazuje, jak trwale zmienić zmienną PATH.


1

W systemie Windows zauważyłem, że ten problem pojawia się, jeśli nie masz uprawnień administratora (tj. Nie jesteś administratorem lokalnym) na komputerze.

Jak zasugerował ktoś inny, rozwiązaniem wydaje się być instalacja lokalna bez korzystania z -gpodpowiedzi.


1

Otwórz wiersz polecenia npm i folder rozwiązania - cd, a następnie uruchom pakiet internetowy npm link w NPM cmd prommt i ponownie skompiluj.


1

Możesz tego spróbować.

npm install --only=dev

Mi to pasuje.


0

Nic z powyższego nie zadziałało (w tym zmienna NODE_PATH). Utworzyłem dowiązanie symboliczne „node_modules” z mojego lokalnego folderu do globalnych danych AppData (np. Poniżej) i działało to jak urok.

C:\Users\mmoinuddin\AppData\Roaming\npm>mklink /D node_modules c:\essportreact\day1\node_modules
symbolic link created for node_modules <<===>> c:\essportreact\day1\node_modules
C:\essportreact\day1>webpack
Hash: 2a82a67f90f9aa05ab4a
Version: webpack 1.15.0

0

Właśnie się dowiedziałem, że używanie terminala Atom IDE nie instaluje zależności lokalnie (prawdopodobnie błąd lub tylko ja). Zainstalowanie git bash na zewnątrz i uruchomienie poleceń npm ponownie zadziałało


0

dla mnie jest to zła informacja o błędzie.

wystąpił błąd konfiguracji w webpack.config.js,

usuń plik i zacznij od nowa rozwiązał mój problem


0

Miałem mnóstwo problemów z uzyskaniem bardzo prostej aplikacji .NET Core 2.0 do skompilowania w VS 2017. To jest błąd z AppVeyor, jednak lokalnie był zasadniczo taki sam (niektóre ścieżki pominięto dla bezpieczeństwa):

Wykonywanie pierwszego uruchomienia pakietu Webpack ...

module.js: 327 throw err;

EXEC: błąd: nie można znaleźć modułu „........ / node_modules / webpack / bin / webpack.js”

w Function.Module._resolveFilename (module.js: 325: 15)

w Function.Module._load (module.js: 276: 25)

w Function.Module.runMain (module.js: 441: 10)

podczas uruchamiania (node.js: 140: 18)

w node.js: 1043: 3

csproj (25,5): błąd MSB3073: Polecenie „node node_modules / webpack / bin / webpack.js --config webpack.config.vendor.js” zostało zakończone z kodem 1.

Budowa nieudana.

Natknąłem się na to pytanie i odpowiedź i zauważyłem, że moja lokalna instancja również miała ten sam znak ostrzegawczy nad {Project Root} -> Dependencies -> npmfolderem. Kliknięcie prawym przyciskiem myszy i naciśnięcie „Przywróć pakiety” spowodowało, że wszystko zostało poprawnie załadowane i mogłem pomyślnie zbudować.


0

npm link webpack działał dla mnie.

Konfiguracja mojego pakietu internetowego: „webpack”: „^ 4.41.2”, „webpack-dev-server”: „^ 3.9.0”, „webpack-cli”: „^ 3.3.10”


0

Zainstalowanie WebPacka i CLI na całym świecie zadziałało dla mnie.

npm i -g webpack webpack-cli
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.