2016-03-11 40 views
15

Uczę się React i zainstalowałem Webpack przez npm do mojego katalogu projektu, ale Zsh nie znajduje polecenia, mimo że widzę zainstalowany Webpack w moim projekcie. Użyłem npm init --yes, a następnie npm install --save webpackZsh: command not found: webpack

Odpowiedz

16

Zainstaluj to globalnie.

npm i -g webpack 

Jeśli będziesz pracować z WebPacka zainstalować WebPACK-dev-serwer zbyt

npm i -g webpack-dev-server 

Polecam najpierw dowiedzieć się trochę o npm a następnie WebPack. Będziesz bardzo się zmagał. A potem zalecam, aby w ogóle nie używać pakietu internetowego. Znalazłem to zbędne jak altana. Przyklejałem moją budowę gulp i npm. Właściwie NPM robi wszystko, ale trochę trudny do wymyślenia. Gulp sprawia, że ​​jest o wiele łatwiej.

+6

Dokumentacja: nie jest to zalecana praktyka. https://webpack.js.org/get-started/install-webpack/ –

+0

@HelmutGranda Od tego czasu może się zmienić. – atilkan

1

W moim przypadku miałem ten problem z plikiem sieciowym, pomrukiem i łykiem i wydaje się, że moim problemem był problem z uprawnieniami.

Zainstalowałem Webpack i chrząkałem na całym świecie. Jednak nawet wtedy, $ webapack lub $ grunt spowodowały, że nie znaleziono polecenia

Problem polegał na tym, że npm zainstalował pakiety globalne do/usr/local/lib/node_modules, które wymagały uprawnień root'a.

Aby uniknąć konieczności używania uprawnień roota, zmieniłem katalog, w którym pakiety globalne mają zostać zainstalowane, do katalogu w $ HOME. Aby to zrobić, po tej instrukcji:

Install npm packages globally without sudo on macOS and Linux

po tym, zainstalowałem WebPACK i chrząknięcie globalnie ponownie (tym razem bez sudo) i sprawdzeniu, że zostały one zainstalowane w moim nowym katalogu.

Teraz mogę biegać bez problemu!

$ WebPack

i

$ grunt

7

Instalacja modułów węzła globalnie to szybkie rozwiązanie, ale polecam dodać ./node_modules/.bin do zmiennej PATH i spróbuj zrozumieć, jaki jest problem.

Execute

~ export PATH="./node_modules/.bin:$PATH" 

Następnie można po prostu użyć wszystkich pakietów zainstalowanych lokalnie w projekcie. Również polecenia takie jak mocha lub eslint można wykonywać bez instalowania tych pakietów na całym świecie. Istnieje kilka dobrych wyjaśnień, które mogą być również przeczytane w tym answer.

+0

Nie rób tego ... Wstawianie względnych ścieżek w zmiennej $ PATH jest dziurą bezpieczeństwa. Zobacz http://stackoverflow.com/a/9683472/1521572 – WrksOnMyMachine

8

po WebPack zainstalowane lokalnie, można również użyć:

$(npm bin)/webpack 

zamiast:

./node_modules/.bin/webpack 
4

Nie ma potrzeby instalowania WebPack globalnie.

Spróbuj moja droga

Po pierwsze, w pliku package.json, dodać to:

"scripts": { 
    "start": "webpack" 
}, 

Następnie w terminalu, uruchom

$npm start 

Kolejny szybki sposób: Po prostu uruchom (Tak, to jest "npx")

$npx webpack 

To wszystko.