前言:有些人看著還活著其實(shí)已經(jīng)涼了好一會(huì)兒了。
初拿到項(xiàng)目
初拿到項(xiàng)目肯定是先看配置
package.json
的啦,看看都需要安裝什么依賴(lài),然后
npm install
,OK結(jié)束
皆大歡喜。
————————————————————————————————————
開(kāi)玩笑的啦,公司的項(xiàng)目還有點(diǎn)點(diǎn)點(diǎn)點(diǎn)點(diǎn)點(diǎn)點(diǎn)點(diǎn)點(diǎn)復(fù)雜,挺不容易的
那就先說(shuō)一個(gè)最大的坑吧node的版本
或許
package.json
上面會(huì)說(shuō)只要>6就OK,但是實(shí)際情況是,如果版本號(hào)太高的話也是不行的,比如說(shuō)我拿到公司的電腦配置環(huán)境的時(shí)候直接就下載的最新的穩(wěn)定的版本(穩(wěn)定的版本也沒(méi)用該不兼容還是不兼容)20.0的版本,依賴(lài)就安裝不下來(lái),我電腦19.0的版本也安裝不下來(lái),這個(gè)最好是問(wèn)同事看用的哪個(gè)版本來(lái)安裝。
在這個(gè)時(shí)候新學(xué)到一個(gè)非常有用的點(diǎn)就是
nvm
nvm
nvm(Node Version Manager)是用來(lái)管理和切換node.js的多個(gè)版本,可以安裝任何版本的node.js隨意切換
==但是有一個(gè)很重要的前提就是原來(lái)的node.js要卸載干凈(我了解的的是要卸載干凈)==包括但不僅限于文件夾D盤(pán)C盤(pán)(這里建議詳細(xì)搜一篇文章看)、環(huán)境變量那里也要清除干凈
然后就是下載安裝
- 安裝包下載地址:記得翻墻https://github.com/coreybutler/nvm-windows/releases,windows系統(tǒng)下載nvm-setup.zip安裝包
- 安裝的話我是直接安裝到默認(rèn)路徑的,因?yàn)榭梢悦猸h(huán)境變量的配置,安裝到C默認(rèn)C盤(pán)系統(tǒng)就直接給你配置了
- 找到nvm文件的位置,點(diǎn)開(kāi)setting.text
在后面配置鏡像源
node_mirror: https://npm.taobao.org/mirrors/node/
npm_mirror: https://npm.taobao.org/mirrors/npm/
- 檢測(cè)以及后續(xù)操作
nvm ls // 看安裝的所有node.js的版本
nvm list available // 查顯示可以安裝的所有node.js的版本
請(qǐng)看圖
如果node -v看不到那就是node沒(méi)有卸載干凈
使用的node版本的文件會(huì)存到nvm的文件夾下面。
5. 下面是看到的一些nvm別的命令
nvm命令行操作命令
1,nvm nvm list 是查找本電腦上所有的node版本
- nvm list 查看已經(jīng)安裝的版本
- nvm list installed 查看已經(jīng)安裝的版本
- nvm list available 查看網(wǎng)絡(luò)可以安裝的版本
2,nvm install 安裝最新版本nvm
3,nvm use <version> ## 切換使用指定的版本node
4,nvm ls 列出所有版本
5,nvm current顯示當(dāng)前版本
6,nvm alias <name> <version> ## 給不同的版本號(hào)添加別名
7,nvm unalias <name> ## 刪除已定義的別名
8,nvm reinstall-packages <version> ## 在當(dāng)前版本node環(huán)境下,重新全局安裝指定版本號(hào)的npm包
9,nvm on 打開(kāi)nodejs控制
10,nvm off 關(guān)閉nodejs控制
11,nvm proxy 查看設(shè)置與代理
12,nvm node_mirror [url] 設(shè)置或者查看setting.txt中的node_mirror,如果不設(shè)置的默認(rèn)是 https://nodejs.org/dist/
nvm npm_mirror [url] 設(shè)置或者查看setting.txt中的npm_mirror,如果不設(shè)置的話默認(rèn)的是: https://github.com/npm/npm/archive/.
13,nvm uninstall <version> 卸載制定的版本
14,nvm use [version] [arch] 切換制定的node版本和位數(shù)
15,nvm root [path] 設(shè)置和查看root路徑
16,nvm version 查看當(dāng)前的版本
deasync包和node-gyp報(bào)錯(cuò)
OK,真的栓Q了,如果你遇到這個(gè)問(wèn)題恭喜你在往大前端方向走,因?yàn)檫@里涉及到一點(diǎn)后端。
deasync包
deasync
是一個(gè) npm 包,它的功能是可以將異步函數(shù)變?yōu)橥綀?zhí)行**。在 JavaScript 和 Node.js 中,大部分操作都是以異步的方式執(zhí)行的,特別是涉及到 I/O(如網(wǎng)絡(luò)請(qǐng)求、讀取文件等)的操作。這是因?yàn)楫惒讲僮骺梢蕴岣叱绦虻倪\(yùn)行效率,避免因等待 I/O 操作完成而產(chǎn)生的阻塞。
但是在一些情況下,可能需要以同步的方式執(zhí)行操作,即需要等待一個(gè)操作完成后再進(jìn)行下一步。這時(shí)候就可以使用 deasync
包。
雖然 deasync
可以方便地將異步函數(shù)轉(zhuǎn)換為同步函數(shù),但它并不應(yīng)該被頻繁使用。濫用 deasync
可能會(huì)降低程序的性能,因?yàn)樗鼤?huì)阻塞 Node.js 的事件循環(huán)。在大部分情況下,建議使用異步編程的模式,如回調(diào)函數(shù)、Promise、async/await 等。
需要注意的是,deasync
包需要編譯 C++ 代碼,因此在安裝時(shí)需要一些編譯工具。在 Unix/Linux 上,需要 Python 和編譯器。在 Windows上,可能需要 Visual Studio 的一些組件。
node-gyp報(bào)錯(cuò)
我這個(gè)報(bào)錯(cuò)其實(shí)是一開(kāi)始npm install的時(shí)候就報(bào)錯(cuò)了,上面報(bào)錯(cuò)我查了一下需要配置python環(huán)境,因?yàn)橛玫搅四膫€(gè)包和這個(gè)報(bào)錯(cuò),所以也需要稍微配一下后端環(huán)境方便解析代碼,下面是我了解到的知識(shí)
node-gyp
是一個(gè)跨平臺(tái)命令行工具,用于編譯 Node.js 的本地插件。這些插件使用了 C++ 并需要在安裝時(shí)進(jìn)行編譯。
如果你在使用 node-gyp
時(shí)遇到錯(cuò)誤,原因可能有以下幾種:
1. 環(huán)境問(wèn)題:node-gyp
需要一些特定的工具和庫(kù)才能工作。例如,在 Windows 上,你可能需要 Python 和 Visual Studio。在 Unix/Linux 上,你可能需要 Python、make 和一個(gè) C++ 編譯器。
2. 版本兼容性問(wèn)題:你的 Node.js 版本可能和你試圖編譯的插件不兼容。這可能是因?yàn)椴寮褂昧?Node.js API 的一個(gè)已廢棄的部分,或者尚未更新以使用新版本的 API。
3. 插件本身的問(wèn)題:插件的源代碼可能包含錯(cuò)誤,導(dǎo)致編譯失敗。
在調(diào)試 node-gyp
的問(wèn)題時(shí),你可以嘗試以下步驟:
- 確保你的環(huán)境滿(mǎn)足
node-gyp
的要求。在 Windows 上,你可以使用npm install --global --production windows-build-tools
來(lái)安裝所需的工具和庫(kù)。 - 如果你的 Node.js 版本可能和插件不兼容,嘗試切換到一個(gè)不同的版本。你可以使用 Node Version Manager (nvm) 來(lái)管理和切換版本。
- 檢查插件的文檔和問(wèn)題追蹤,看看是否有其他用戶(hù)遇到過(guò)同樣的問(wèn)題。可能的話,聯(lián)系插件的維護(hù)者以獲取幫助。
- 嘗試刪除
node_modules
目錄和package-lock.json
文件,然后再次運(yùn)行npm install
。這可能有助于解決一些node-gyp
的問(wèn)題。
這里又涉及到了一個(gè)npm install --global --production windows-build-tools
的命令,因?yàn)槲覜](méi)安裝成功
==一定要看報(bào)錯(cuò)信息和報(bào)錯(cuò)日志,這樣才知道哪里報(bào)錯(cuò)了?。。。。。?!==這里報(bào)錯(cuò)信息就顯示這個(gè)其實(shí)已經(jīng)安裝到我C盤(pán)的一個(gè)位置了,不過(guò)自動(dòng)安裝失敗了,所以你打開(kāi)手動(dòng)安裝一下就OK .這里那個(gè)公司的電腦太卡了,報(bào)錯(cuò)信息調(diào)不出來(lái),沒(méi)法展示圖片,其實(shí)按照?qǐng)?bào)錯(cuò)信息給的位置手動(dòng)下載就Ok友情提示,里面下載需要一段時(shí)間 這個(gè)工具內(nèi)存挺大的。它會(huì)自動(dòng)全局安裝Python和 Visual Studio Build Tools(但我之前沒(méi)安裝上所以手動(dòng)安裝的python環(huán)境,注意看好是需要3之前的版本還是之后的版本,不一樣)執(zhí)行這個(gè)命令將會(huì)安裝這些工具,并自動(dòng)配置環(huán)境變量 但是只適合Windows系統(tǒng)
.npmrc文件是干嘛的?這個(gè)我也了解了一下
.npmrc`文件是一個(gè)配置文件,用于存儲(chǔ)和跟蹤Node Package Manager (npm)的配置設(shè)置。它允許你控制多種npm行為,并將這些設(shè)置跨多個(gè)npm運(yùn)行或項(xiàng)目進(jìn)行保存和復(fù)用。
.npmrc
文件可以出現(xiàn)在幾個(gè)位置,每個(gè)位置對(duì)應(yīng)不同的配置級(jí)別:
-
全局級(jí)別:在用戶(hù)主目錄下的
.npmrc
文件(如~/.npmrc
),存儲(chǔ)全局配置,對(duì)所有npm項(xiàng)目有效。 -
項(xiàng)目級(jí)別:在項(xiàng)目目錄下的
.npmrc
文件,只對(duì)當(dāng)前項(xiàng)目有效。
.npmrc
文件中的常見(jiàn)配置項(xiàng)包括:
-
registry
:配置npm使用的包(package)注冊(cè)表的URL。常用于把默認(rèn)的npm倉(cāng)庫(kù)切換為鏡像倉(cāng)庫(kù),如淘寶的cnpm,以加快包的下載速度。 -
prefix
:設(shè)置全局包的安裝目錄,一般用于解決全局包權(quán)限問(wèn)題。 -
save-exact
:配置是否在package.json
保存精確的包版本,而非版本范圍。
.npmrc
文件是純文本文件,可以用任何文本編輯器打開(kāi)。配置項(xiàng)采用key-value的格式,如registry=https://registry.npmjs.org/
,每行一個(gè)。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-742306.html
OK ,雖然但是,收獲滿(mǎn)滿(mǎn),學(xué)到知識(shí)的感覺(jué)讓我很心安。明天繼續(xù)保持!文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-742306.html
到了這里,關(guān)于項(xiàng)目實(shí)戰(zhàn)之安裝依賴(lài)npm install的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!