<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          工作5年,還不知道團(tuán)隊(duì)如何巧妙統(tǒng)一Node版本?

          共 2625字,需瀏覽 6分鐘

           ·

          2024-04-11 06:27

                大廠技術(shù)
                    
                  高級前端
                    
                  Node進(jìn)階
                
                  

          點(diǎn)擊上方  程序員成長指北 ,關(guān)注公眾號

          回復(fù) 1 ,加入高級Node交流群

          在現(xiàn)代前端開發(fā)中,Node.js 作為構(gòu)建工具和服務(wù)端運(yùn)行環(huán)境的基石,版本不一致可能導(dǎo)致各種問題,如依賴庫兼容性問題、開發(fā)環(huán)境與生產(chǎn)環(huán)境不匹配等。

          在不同項(xiàng)目中因?yàn)閯?chuàng)建項(xiàng)目時(shí)期不同等原因,可能使用的 Node.js 版本不同,我們基本都會安裝 nvmNode.js 版本管理工具,方便在不同項(xiàng)目下切換不同的版本。但來回切換很容易導(dǎo)致混淆,因此引發(fā)的一些 bug 還難以排查。

          為了確保團(tuán)隊(duì)協(xié)作項(xiàng)目的穩(wěn)定性和一致性,我們需要采取一些措施來保證項(xiàng)目中的 Node 版本一致。

          以下是一些常用的方法:

          1.package.json的engines字段

          在項(xiàng)目的package.json文件中,可以使用engines字段來指定所需的 Node 版本。在該字段中,我們可以定義一個(gè)范圍或者具體的版本號來限制 Node 的版本。

          具體engines配置說明如下:

                
                // 指定特定版本號
          "engines": {
            "node""14.17.0"
          }

          // 范圍符號:表示項(xiàng)目需要Node版本大于等于12.0.0且小于16.0.0。
          "engines": {
            "node"">=12.0.0 <16.0.0"
          }

          // 波浪線符號:表示項(xiàng)目需要Node版本為14.17.x
          "engines": { "node""~14.17.0" }

          // 插入符號:表示項(xiàng)目需要Node版本為14.x.x
          "engines": { "node""^14.17.0" }

          這樣做的好處是,當(dāng)項(xiàng)目成員運(yùn)行 npm install 時(shí),npm 會自動檢查 Node 版本是否滿足要求,并給出警告或錯(cuò)誤信息。

          409d7aea3b6f5b53157932ae7f76ce50.webpimage.png

          但是,我們在使用npm install時(shí),發(fā)現(xiàn)engines配置并沒有起作用,然后換yarn安裝,發(fā)現(xiàn)engines配置又起作用了。

          76c6e2fae0cf80b7247ef43497077c87.webpimage.png

          到底是什么原因?qū)е碌哪兀?/p>

          2.使用.npmrc文件

          原來 engines 只是建議,默認(rèn)不開啟嚴(yán)格版本校驗(yàn),只會給出提示,需要手動開啟嚴(yán)格模式。在根目錄下 .npmrc 添加 engine-strict = true才會起作用。配置完成后再執(zhí)行npm install:

                
                # .npmrc
          engine-strict = true
                
                npm ERR! code ENOTSUP
          npm ERR! notsup Unsupported engine for react_antd_admin_template@1.0.0wanted: {"node":"14.17.5","npm":"6.14.14"} (current: {"node":"16.18.1","npm":"8.19.2"})
          npm ERR! notsup Not compatible with your version of node/npm: react_antd_admin_template@1.0.0
          npm ERR! notsup Not compatible with your version of node/npm: react_antd_admin_template@1.0.0
          npm ERR! notsup Required: {"node":"14.17.5","npm":"6.14.14"}
          npm ERR! notsup Actual:   {"node":"16.18.1","npm":"8.19.2"}

          此時(shí)通過 npm 安裝,限制 Node 版本便起作用了。

          3.使用.nvmrc文件

          通過上面的方式,可以做到讓大家使用相同的 Node 版本,但每次提示版本不符合,需要開發(fā)人員到package.json中查看版本號,然后再使用nvm切換指定版本,太麻煩了,高效開發(fā)不是這么干的。

          我們可以創(chuàng)建一個(gè).nvmrc文件, 指定項(xiàng)目 Node 版本:

                
                # .nvmrc
          v14.17.5

          此時(shí),執(zhí)行nvm use 自動就切換到項(xiàng)目執(zhí)行的 Node 版本。ac954f5c96ec5a29be1cffa114c98420.webp

          .nvmrc文件是一個(gè)存放指定 Node 版本的配置文件,可以告訴項(xiàng)目的成員應(yīng)該使用哪個(gè)Node 版本來運(yùn)行項(xiàng)目。

          如果我們沒有安裝對應(yīng)版本的 Node ,執(zhí)行時(shí)也會提示沒有安裝

          96eee5a74d144db460f7cfdb3f2264f0.webpimage.png

          非常簡單的配置, 就能解決團(tuán)隊(duì)協(xié)作項(xiàng)目中的 Node 版本不一致這個(gè)大麻煩,你學(xué)會了嗎~

          Node 社群

                

          我組建了一個(gè)氛圍特別好的 Node.js 社群,里面有很多 Node.js小伙伴,如果你對Node.js學(xué)習(xí)感興趣的話(后續(xù)有計(jì)劃也可以),我們可以一起進(jìn)行Node.js相關(guān)的交流、學(xué)習(xí)、共建。下方加 考拉 好友回復(fù)「Node」即可。

                  

              “分享、點(diǎn)贊 在看” 支持一下

          瀏覽 53
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  午夜gogo | 大色AV | 免费黄片网站 | 天堂中文网 | 玖玖国产|