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

          npm依賴管理peerDependencies

          共 1273字,需瀏覽 3分鐘

           ·

          2021-08-12 18:17


          npm中dependencies與peerDependencies區(qū)別


          假設(shè)我們當(dāng)前的項(xiàng)目是MyProject,項(xiàng)目中有一些依賴,比方其中有一個依賴包PackageA,該包的package.json文件指定了對PackageB的依賴:


          {    "dependencies": {        "PackageB": "1.0.0"    }}


          如果我們在我們的MyProject項(xiàng)目中執(zhí)行npm install PackageA, 我們會發(fā)現(xiàn)我們項(xiàng)目的目錄結(jié)構(gòu)會是如下形式:


          MyProject|- node_modules   |- PackageA      |- node_modules         |- PackageB


          那么在我們的項(xiàng)目中,我們能通過下面語句引入"PackageA":

          var packageA = require('PackageA')


          但是,如果你想在項(xiàng)目中直接引用PackageB:

          var packageA = require('PackageA')var packageB = require('PackageB')


          這是不行的,即使PackageB被安裝過;因?yàn)镹ode只會在“MyProject/node_modules”目錄下查找PackageB,它不會在進(jìn)入PackageA模塊下的node_modules下查找。


          所以,為了解決這個問題,在MyProject項(xiàng)目package.json中我們必須直接聲明對PackageB的依賴并安裝。


          但是,有時我們不用在當(dāng)前項(xiàng)目中聲明對PackageB的依賴就可以直接引用,為什么在項(xiàng)目中不用聲明就可以直接使用呢?這就不得不說說peerDependencies的作用了。


          于是peerDependencies就被引入了。例如上面PackageA的package.json文件如果是下面這樣:


          {    "peerDependencies": {        "PackageB": "1.0.0"    }}


          那么,它會告訴npm:如果某個package把我列為依賴的話,那么那個package也必需應(yīng)該有對PackageB的依賴。


          也就是說,如果你 npm install PackageA,你將會得到下面的如下的目錄結(jié)構(gòu):


          MyProject|- node_modules   |- PackageA   |- PackageB


          總結(jié)一句話,peerDependencies的具體作用:


          peerDependencies的目的是提示宿主環(huán)境去安裝滿足插件peerDependencies所指定依賴的包,然后在插件import或者require所依賴的包的時候,永遠(yuǎn)都是引用宿主環(huán)境統(tǒng)一安裝的npm包,最終解決插件與所依賴包不一致的問題。


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

          手機(jī)掃一掃分享

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

          手機(jī)掃一掃分享

          分享
          舉報
          <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>
                  三级麻豆 | 黄色污污污污污网站在线观看 | 操逼欧美 | 欧美操逼吧 | 欧美成人精品在线观看 |