跟著教程邊學(xué)邊打代碼,建立項(xiàng)目,在不同的電腦,創(chuàng)建webpack項(xiàng)目時(shí)候瑞躺,分別遇到不一樣的坑。
電腦 A :
環(huán)境:Mac
? ? ? ? ?node -v: v0.12.4
? ? ? ? ?npm -v: 2.10.1
按著教程寫(xiě)完index.js,sub.js兴想,安裝好各種包幢哨,然后在項(xiàng)目根目錄運(yùn)行webpack后,馬上遇到一個(gè)坑
指令webpack安裝的時(shí)候明明是全局的 “npm install -g webpack”襟企,但是仍然報(bào)出了這樣的錯(cuò)誤 根據(jù)路徑,ls查看webpack目錄下是存在NodeTemplatePlugin這個(gè)插件的狮含,查找了一下原因顽悼,應(yīng)該是沒(méi)有設(shè)置環(huán)境變量導(dǎo)致的。具體在這里
按照別人的方法:
1.直接在終端下几迄,設(shè)置環(huán)境變量export NODE_PATH="/usr/local/lib/node_modules" 后在項(xiàng)目根目錄運(yùn)行webpack蔚龙,仍然報(bào)錯(cuò)。在項(xiàng)目根目錄下輸入指令 echo $NODE_PATH 輸出結(jié)果為空映胁。
2.在項(xiàng)目根目錄下設(shè)置環(huán)境變量export NODE_PATH="/usr/local/lib/node_modules" 后在項(xiàng)目根目錄運(yùn)行webpack木羹,成功!在項(xiàng)目根目錄下輸入指令 echo $NODE_PATH 能輸出結(jié)果。但是當(dāng)新開(kāi)一個(gè)終端進(jìn)入項(xiàng)目坑填,并在項(xiàng)目根目錄下運(yùn)行webpack指令抛人,仍然報(bào)錯(cuò),輸入指令 echo $NODE_PATH 輸出結(jié)果為空脐瑰。說(shuō)明之前設(shè)置的環(huán)境變量只是一個(gè)臨時(shí)的值妖枚! 以上兩種方法都不可以很好的解決問(wèn)題。
繼續(xù)尋找解決方案: 在~/.bash_profile中添加如下設(shè)置: export NODE_PATH="/usr/local/lib/node_modules" 保存退出苍在。
運(yùn)行webpack,成功绝页!輸入指令 echo $NODE_PATH 能輸出結(jié)果!
ps:在終端下 vim ~/.bash_profile i #進(jìn)入編輯
? ? ? ?輸入語(yǔ)句 export NODE_PATH="/usr/local/lib/node_modules"
? ? ? ?esc :wq
? ? ? ?source ~/.bash_profile ?#讓~/.bash_profile馬上生效寂恬!
最終成功運(yùn)行項(xiàng)目
晚上用另外一臺(tái)電腦续誉,重新建立webpack項(xiàng)目,出現(xiàn)了各種狀況
環(huán)境:mac
? ? ? ? ?node -v: v5.7.0
? ? ? ? ?npm -v: v3.6.0
跟這教程初肉,建立項(xiàng)目酷鸦,安裝webpack,html-webpack-plugin 兩個(gè)包后朴译,運(yùn)行webpack, 報(bào)錯(cuò)井佑。按照上面的解決方法,解決問(wèn)題眠寿。好躬翁!繼續(xù)!問(wèn)題陸續(xù)的出現(xiàn)了...
安裝webpack-dev-server盯拱,報(bào)錯(cuò)報(bào)錯(cuò)...嘗試忽略它盒发,繼續(xù)往前走,配置webpack-dev-server狡逢,在項(xiàng)目根目錄下輸入npm start宁舰。最后...還是走不下去,各種報(bào)錯(cuò)奢浑!
它說(shuō)我版本太低太低B琛!H副恕H姥痢! 各種翻閱資料徊哑,有人說(shuō)把webpack版本裝到2.0.1beta解決問(wèn)題袜刷;有人說(shuō)因?yàn)閚ode到了5.x這些包裝的時(shí)候出現(xiàn)各種狀況,需要降低版本莺丑,還有各種各樣的解釋……
就這樣著蟹,我把webpack裝了好多遍,即使換到2.0.1beta依舊沒(méi)有解決問(wèn)題;那好吧萧豆,我降低node版本咯~ 竟然竟然在我換版本的時(shí)候node掛了奸披,又出現(xiàn)了另外一個(gè)狀況。在這種重重復(fù)復(fù)裝了node炕横,npm后源内,又卸載,重新再裝node份殿,npm后膜钓,又卸載…… 搞了好久,最后成功了卿嘲。
總結(jié)一下:
1.webpack在全局安裝颂斜, webpack-dev-server死活不兼容,根本跑不起來(lái)(說(shuō)版本太低了拾枣,但是這怎么解決依舊沒(méi)有找到解決方案沃疮,有待解決)
結(jié)論:webpack還是局部安裝吧!
2.webpack在局部安裝梅肤,假設(shè)package.json 里面的name為:webpack司蔬,那很好又報(bào)錯(cuò)了,如圖:
將package.json 的name屬性修改為:webpackTest, 通過(guò)姨蝴!
結(jié)論:package.json的name屬性不能跟webpack命令一樣
3.解決問(wèn)題2后俊啼,輸入命令webpack,提示webpack command is not found左医,如圖:
基于這情況授帕,在package.json下,配置一下命令:
"scripts": {
? ?"test": "echo \"Error: no test specified\" && exit 1",
? ?"start": "webpack"
},
在終端下浮梢,執(zhí)行npm start跛十,開(kāi)始編譯,生成build文件夾
繼續(xù)配置webpack-dev-server秕硝,package.json入面的配置就不是像教程那樣寫(xiě)了芥映,應(yīng)該為這樣
"scripts": {
? ?"test": "echo \"Error: no test specified\" && exit 1",
? ?"start": "webpack",
? ?"dev": "webpack-dev-server --hot --inline"
}
在終端下,執(zhí)行npm run dev远豺,通過(guò)D纹!1锓伞霎苗! 在瀏覽器里輸入localhost:8080, HelloWorld出現(xiàn)了D房浴i蛔觥!!<烀小厘擂!
終于項(xiàng)目又一次跑起來(lái)了...
心真累!