2016-03-05 78 views
52

我學習React.js和我使用Windows 8 OS.i已導航到我的根文件夾的WebPack不被識別爲一個內部或外部命令,可操作的程序或批處理文件

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是未被識別爲內部或外部命令,可操作程序或批處理文件

回答

50

我也有這個問題很長一段時間。 (安裝的WebPack全球等,但仍然無法識別) 原來,我還沒有指定NPM環境變量(其中文件webpack.cmd坐) 所以我添加到Path變量

c:\Users\Me\AppData\Roaming\npm\ 

如果你正在使用PowerShell中,您可以鍵入以下命令,以有效地添加到您的路徑:

[Environment]::SetEnvironmentVariable("Path", "$env:Path;c:\Users\Me\AppData\Roaming\npm\", "User") 

重要:不要忘記關閉,以應用此重新打開PowerShell窗口。

希望它有幫助。

+0

Vlado謝謝你這麼多。這個作品完美 – yasar

+4

井Iam卡在同一個地方...你可以請詳細說明你的答案 – Intruder

+0

我是按照所有步驟,但它沒有工作,然後最終我意識到,我沒有打開CMD作爲管理員。 –

43

作爲替代方案,如果你的WebPack本地安裝,你可以明確地指定命令提示符應該找到它,像這樣:

node_modules\.bin\webpack 

(這並不認爲你和目錄內你的package.json,你已經運行npm install webpack)。這個問題是安裝Webpack全球

+3

這應該是被接受的答案 –

+1

同意Max,原因是建議在本地安裝webpack(在devDependencies中) - 我的問題有點不同,雖然在VS 2017中添加webpack作爲預構建步驟時,我認爲VS是足夠聰明的本地找到沒有完整路徑的webpack cmd – JimiSweden

+0

@JimiSweden您是否嘗試添加'node_modules \ .bin'到_tools->配置外部工具_ –

23

npm install -g webpack-dev-server將解決您的問題

83

更好的解決方案。

這總是有效,它對我很有用。嘗試下面的命令。

npm install -g webpack 
+0

它幫助我謝謝 –

+13

我認爲應該指出的是,使用-g全局安裝webpack,如果您有多個可能需要不同版本的webpack的項目,則可能不需要這些。 –

3

只需以管理員身份運行命令行(cmd)即可。

3

將webpack命令添加爲package.json中的npm腳本。

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

然後運行

NPM運行編譯

當的WebPack安裝它創建./node_modules/.bin文件夾中的二進制文件。 npm腳本也查找在此文件夾中創建的可執行文件

1

我遇到了同樣的問題,只是將代碼塊添加到我的package.json文件中;

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

然後在終端上運行命令;

npm run build 
+0

這對我有用。感謝分享。 –

0

有時NPM安裝-g的WebPack不正確保存。最好使用npm install webpack - 保存。它爲我工作。

+0

-g在全局安裝(不是你本地的項目node_modules + package.json),而--save在本地安裝(在你的本地node_modules + package.json中),所以這個答案是錯誤的。 –

相關問題