<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>

          如何統(tǒng)一前端項目的 Node 版本和包管理器?

          共 1145字,需瀏覽 3分鐘

           ·

          2022-06-09 19:14

          通過文檔和溝通約束,遠(yuǎn)不如用工具(代碼)約束。

          作者:亖混子

          原文:https://segmentfault.com/a/1190000041918155

          開發(fā)環(huán)境

          1. Node.js
          2. Package Manager (npm、yarn、pnpm)

          痛點問題

          成員機器 Node.js 版本不統(tǒng)一:守舊派用 12.x、保守用 14.x、激進用 17.x。項目能否正常跑起來全憑天意,在沒有 CICD 流水線加持本地 npm run build 的場景下線上風(fēng)險可想而知。

          有人習(xí)慣用 npm、有人習(xí)慣用 yarn, 代碼庫里面經(jīng)常會存在 package-lock.json、yarn.lock 文件同時存在的情況。更痛的點還是各種奇奇怪怪問題排查起來沒有頭緒。

          我們要做的就是將問題掐死在源頭:鎖定 Node.js 版本和包管理器

          鎖定項目 Node 版本

          通過在 package.json 中指定 engines 字段,可限定項目使用的 node 版本。下面配置僅允許用戶使用 14 或者 16的版本。更多的配置可以參考 ?package.json | npm Docs 、semver

          ??//?package.json?
          ??"engines":?{
          ????"node":?"14.x?||?16.x"
          ??},

          配置之后你會發(fā)現(xiàn),該字段只對 yarn 生效。那如何對 npm 也生效呢?在項目根目錄下的 .npmrc 文件中增加如下配置

          //?.npmrc
          engine-strict?=?true

          以上配置完成后,npm install 試試吧,錯誤的 Node.js 將直接退出

          鎖定包管理器

          利用 only-allow 工具包、npm scripts 快速實現(xiàn)鎖定。

          步驟一:在項目中 npm install -D only-allow

          步驟二:在 package.json 文件中進行配置 scripts.preinstall , 允許輸入的值 only-allow npm、only-allow pnpm、only-allow yarn

          //?package.json
          "scripts":?{
          ????"preinstall":?"only-allow?npm",
          ????...
          }

          以上配置完成后,可以再亂用 (yarn、npm、pnpm) 試試


          最后



          如果你覺得這篇內(nèi)容對你挺有啟發(fā),我想邀請你幫我個小忙:

          1. 點個「喜歡」或「在看」,讓更多的人也能看到這篇內(nèi)容

          2. 我組建了個氛圍非常好的前端群,里面有很多前端小伙伴,歡迎加我微信「sherlocked_93」拉你加群,一起交流和學(xué)習(xí)

          3. 關(guān)注公眾號「前端下午茶」,持續(xù)為你推送精選好文,也可以加我為好友,隨時聊騷。



          點個喜歡支持我吧,在看就更好了



          瀏覽 48
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <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>
                  水多多精品视频 | 国产成人a亚洲精品久久久久 | 欧洲一区二区在线 | aaa天堂在线观看 | 黄色小视频网站在线观看 |