由於公司項目比較多,每次被指派迭代一個新項目的時候都會下載對應的node module包,但是內網上存在的那些node module包,總是跑不起來。經過一些嘗試。得已解決。現在我把集中可能的情況分享出來,避免以后再次踩坑。
1、檢查node版本
我是用的是nvm,首先貼上nvm常用命令:
nvm install latest #安裝最新node
nvm install 10.15.3 #安裝指定版本的node
nvm list #查看已安裝的node
nvm use 10.15.3 #切換到指定的node 版本
首先 終端上 輸入node -v 查看node版本,有些老項目需要 node 8 才能運行。這時候我們就要切換版本;
首先看看本地有哪些node 版本, nvm ls ;其次下載需要的node版本, nvm install 8.17.0,然年后就是切換版本 nvm use 8.17.0;
再次 npm run serve 啟動服務。
2、 檢查node-sass和sass-loader版本
這里的坑我屬實踩過好幾遍,上網查閱后發現node-sass和sass-loader還有版本沖突的情況:以下版本可以完美兼容
"node-sass": "^4.14.1", "sass-loader": "^7.3.1", // 親測node 版本v14.16.1完美兼容/10.12.0也行
操作步驟: 1、npm uninstall sass-loader
2、 npm install sass-loader@7.3.1
3、npm uninstall node-sass
4、 npm install node-sass@4.14.1
5、再試一次 npm run serve
提示:1、如果想要保險一點,可以先去node module 包里面刪除 sass-loder 和 node-sass 文件夾 ,再刪除 package.json 里面的 node-sass 和 sass-loder 。再執行上述操作。
2、如果npm 下載過慢,可使用cnpm下載;終端輸入 npm install -g cnpm --registry=https://registry.npm.taobao.org ,隨后cnpm便可以使用,使用方法和npm如出一轍。
3、還有一種報錯:
這種報錯window電腦上會出現,缺少python環境,而且不支持python3,我們需要下載python2安裝。
為什么 node模塊會需要python環境呢?
node-sass 編譯器是通過 C++ 實現的。
在 Node.js 中,采用 gyp 構建工具進行構建 C++ 代碼,而 GYP 是基於 Python 2 開發的,所以需要 python,而且不支持 3。
安裝好環境后,執行上面的操作就行了。