2016-03-11 125 views
15

我正在學習React並通過npm安裝webpack到我的項目目錄,但即使我可以看到安裝在我的項目中的webpack,zsh仍未找到該命令。我使用npm init --yes後跟npm install --save webpackZsh:命令未找到:webpack

回答

16

全局安裝。

npm i -g webpack 

如果你將與工作的WebPack,安裝的WebPack-dev的服務器太

npm i -g webpack-dev-server 

我建議你先學習一些關於NPM然後的WebPack。你會掙扎很多。 然後我建議不要使用webpack。我發現它像涼亭一樣多餘。 我堅持我的gulp構建和npm。 其實NPM確實有點難以確定。 Gulp使它變得更容易。

+6

根據文檔:這不是推薦的做法。 https://webpack.js.org/get-started/install-webpack/ –

+0

@HelmutGranda事情可能會改變。 – atilkan

1

在我的情況下,我有這個問題與webpack,grunt和gulp,似乎我的問題是權限問題。

我在全球安裝了webpack和grunt。然而,即使這樣,$ webapack或$ grunt導致命令未找到

問題是,npm安裝了需要root權限的/ usr/local/lib/node_modules全局包。

因此,爲了避免必須使用root權限,我將全局包的安裝目錄更改爲$ HOME中的目錄。要做到這一點,我遵循這個指南:

Install npm packages globally without sudo on macOS and Linux

在這之後,我又在全球範圍(這個時候沒有sudo)安裝的WebPack和呻吟,證實他們已經安裝在我的新目錄中。

現在,我可以運行沒有問題!

$的WebPack

$咕嚕

7

安裝節點模塊全球是一個快速解決方案,但我建議增加./node_modules/.bin到路徑變量並重瞭解,問題是什麼。

執行

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

之後,您可以簡單地在項目中使用本地安裝的所有軟件包。 也可以執行像mochaeslint這樣的命令,而無需全局安裝這些軟件包。 有幾個很好的解釋可能也讀這answer

+0

不要這樣做......把相對路徑放在你的$ PATH變量中是一個安全漏洞。 請參閱http://stackoverflow.com/a/9683472/1521572 – WrksOnMyMachine

8

具有的WebPack本地安裝,你也可以使用:的

$(npm bin)/webpack 

代替:

./node_modules/.bin/webpack 
4

沒有必要的WebPack全球安裝。

試試我的方法:

首先,在你的package.json文件中,補充一點:

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

然後,在你的終端,運行

$npm start 

另一種快速的方法: 只是運行(是的,這是'npx')

$npx webpack 

就是這樣。