最近接手公司的項目,由於代碼歷史悠久,據說已經最少經歷過了6個人的手,查看gitee提交的年限,竟然是1-2年前的代碼,好吧。這個鍋總得有人接,既然是架構師,就要勇於面對挑戰,今天把我解決的方法記錄起來,剛好這也是面試當中容易被面試官問到的問題,網上還沒有比較官方的答案,那我在這里就詳細地說一下。

歷史悠久的代碼
第一步:git clone 代碼.git;
第二步:下載安裝nodejs(npm),並安裝淘寶鏡像(cnpm);
百度搜索node官網,根據電腦系統下載合適的安裝包,按照步驟直接點擊下一步完成安裝,nodejs默認集成了npm,無需再次安裝,安裝一下國內淘寶鏡像cnpm。
win+R,輸入cmd打開命令行,輸入 node -v 回車,查看nodejs是否成功安裝;

輸入npm -v 可以查看npm是否成功安裝,安裝成功后,出現版本號,說明nodejs和npm都安裝成功了。
第三步: cnpm install;
安裝好依賴包后,npm run dev成功運行,運行npm run build命令后,出現一大堆錯誤,於是,第一時間查看一下package.json文件

運行npm run dev 的時候,命令前綴是webpack-dev-server,運行npm run build的時候,命令前綴是webpack,故查看一下webpack是否安裝成功,於是在TERMINAL運行:webpack -v
顯示'webpack' 不是內部或外部命令,也不是可運行的程序 或批處理文件,那就重裝webpack好了。
第四步:配置環境;
1.配置文件夾
我的nodejs是默認安裝在路徑C:\Program Files\nodejs,最開始的時候是安裝在其他盤的,但是配置的時候出現各種問題,后重裝改為默認路徑。
在C:\Program Files\nodejs文件夾內,新建兩個文件夾,用於全局存放依賴包路徑和緩存路徑
緩存 C:\Program Files\nodejs\node_cache
全局 C:\Program Files\nodejs\node_global

文件夾創建完成后,打開命令行,輸入以下命令,配置路徑:
npm config set cache "C:\Program Files\nodejs\node_cache" 回車
npm config set prefix "C:\Program Files\nodejs\node_global" 回車
注:(輸入指令后,命令行閃一下,不會有任何提示)
2.安裝webpack
webpack分為全局安裝和項目安裝(安裝在你指定的文件夾內),我這里使用的是全局安裝
啟動cmd,鍵入如下的命令:npm install webpack -g 點擊回車

顯示:Unhandled rejection Error: EPERM: operation not permitted, open 'C:\Program Files\nodejs\node_cache\_cacache\tmp\96bbd5b6'錯誤
用我英語過四級的水平,初步翻譯一下:未處理的拒絕錯誤:EPERM:操作不允許操作
這是一個權限的問題,
運行win + x,選擇【命令提示符(管理員)】,再運行 npm install webpack -g 點擊回車

會有一個進度條,等待進度條完成后,出現如下信息(具體信息可能有差別,但是只要不出現error說明安裝成功):

此時,打開nodejs的路徑C:\Program Files\nodejs\node_global文件夾,發現多了一些東西:

此時全局webpack已經成功安裝。
3.環境變量配置
【此電腦】——右鍵【屬性】——【高級系統設置】——【高級】——【環境變量 】

分別新建用戶變量PATH和系統變量NODE_PATH
用戶變量:
系統變量:

注意:這是最重要的一點。在安裝webpack后出現'webpack' 不是內部或外部命令的問題,就是此處設置不對
PATH和NODE_PATH全部設置為:C:\Program Files\nodejs\node_global。
看到網上的設置方法為 :NODE_PATH屬性指向C:\Program Files\nodejs\node_global\node_modules,這樣設置並不對,就會導致報不是內部命令
運行還是不行,於是......
記得這重要的一步:電腦重啟!電腦重啟!電腦重啟!重要的事情說三遍。
按照以上步驟nodejs npm webpack算是真正安裝配置完,然后就可以直接使用了。
第五步:刪除node_modules包
第六步:運行 npm cache clean -f 清理緩存
第七步:重新 cnpm install
第八步:運行npm run build

完美!成功!
這就是一般npm install運行問題的解決方案。
