欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Cortex依賴管理

cortex對模塊的依賴基于semantic version進行管理,如果熟悉npm的模塊管理方式,大家都了解node的模塊是放在node_modules這個目錄下,每個模塊自己的依賴都放在自己目錄下的node_modules里面,這樣避免了不同模塊之間的共同依賴版本沖突的問題。

創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比偃師網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式偃師網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋偃師地區(qū)。費用合理售后完善,10多年實體公司更值得信賴。

Cortex依賴管理

而在前端開發(fā)中,套嵌的依賴是不可能的,因為:

  • 1) web開發(fā)的載入是異步的,不能像node那樣去在運行時檢測文件上依賴是否存在,遠程檢測模塊是否存在再載入非常耗時。

  • 2) 文件大小限制,相對于磁盤的廉價,http請求和頁面載入重復(fù)的js文件的開銷都是非常大的,不可能通過文件套嵌的方式來實現(xiàn)。

所以cortex的模塊管理是基于一個扁平化的結(jié)構(gòu):

 

Cortex依賴管理

那么一個模塊怎么知道他需要載入的第三方模塊是什么版本呢?比如store.js, 在代碼中使用時都是

require('store.js')

這個信息只能告訴我們依賴什么模塊,而不知道具體版本。通常的loader,比如requirejs,的做法是對模塊進行管理, 模塊的映射是:

“` store.js =./mod/store.js.1.0.0.js ““

這相當(dāng)于一個全局變量,所有的store.js都會被固定到某個版本,即使存在第三方依賴不兼容1.0.0的版本.

component和bower也是采用扁平化的方式來儲存模塊,但只有一層目錄。如果在依賴樹中存在這兩個不同版本,不管是否兼容,最終都會只產(chǎn)生一個版本,而這個版本完全取決于依賴申明的層次,順序和在執(zhí)行install時異步任務(wù)執(zhí)行的順序,可以說,是隨機的。

如果一個模塊A依賴于jquery的一個低版本, 1.8.3, 而另一個模塊B依賴于1.9.1,最終結(jié)果在component中是沒法控制,取決于jquery在依賴樹中的位置,導(dǎo)致一個使用jquery@1.9.1功能的模塊最終安裝的是jquery@1.8.3而出錯。

而這樣的錯誤是只有在代碼執(zhí)行時才會被發(fā)現(xiàn)的,對于不熟悉的人也很難意識到是某個模塊中依賴問題,需要對component比較熟悉,并且對自己使用的模塊中依賴也了解人才能夠很快的發(fā)現(xiàn)問題所在。

這樣模塊的開發(fā)者和使用者都需要管理代碼的兼容問題,使用者需要對使用的模塊有什么依賴也有了解,否則他可能會碰到一個很難以發(fā)現(xiàn)bug。任何一個不兼容的模塊都會破壞這個生態(tài)環(huán)境,從而使得開發(fā)者不敢使用已有的模塊而重復(fù)的造輪子。

而在cortex中, 正確的版本申明能夠使得只有模塊的開發(fā)者才需要關(guān)心自己的模塊依賴。而使用者完全不用擔(dān)心依賴樹上的深層次組件會影響到自己的代碼。 如果在之前的例子中,模塊A的開發(fā)者在開發(fā)時是依賴著jquery@1.8.3, 他可以根據(jù)semantic version申明為:

jquery@^1.8.3

模塊B則申明為:

jquery@^1.9.1

這樣cortex會發(fā)現(xiàn),存在著jquery@1.9.1在保證兼容的情況下滿足兩個需求, 最終會載入正確的jquery@1.9.1。而模塊A和B的使用者不需要關(guān)系A(chǔ)和B到底使用了什么版本的jquery, 他只要管理好A和B就好,cortex會幫他處理深層次依賴的問題。

由于其他的loader基本上都是基于 “name => js file”的映射來載入js文件,從而在執(zhí)行環(huán)境中無法區(qū)分在不同的代碼中name可能代表的含義不同的需求,這也是cortex目前只支持使用neuron作為loader的原因。

有了版本信息, 如果有兩個模塊依賴了store.js的相同版本,store.js只會載入一份,而不會每個自帶一份。而cortex支持semantic version的range來申明依賴,使得只要兩個版本是兼容的,就不會出現(xiàn)兩份代碼。

Cortex依賴管理

而對于不兼容的代碼,用戶也不用擔(dān)心功能性失效或者新版本破壞之前的邏輯,即使在一個頁面多層次的引用到一個模塊的不同版本的情況下, 不同的代碼之間也能夠很好的相互兼容。而這樣的穩(wěn)定性,對于大型項目來是非常重要的。

在對性能要求很高的環(huán)境中,可以對于特定代碼進行優(yōu)化, 希望排除多余的文件,可以通過命令

cortex ls store.js

會列出在依賴樹上的所有的store.js,可以發(fā)現(xiàn)是哪個模塊依賴了古老的版本,從而去升級或者替換依賴。

文章標(biāo)題:Cortex依賴管理
文章分享:http://chinadenli.net/article36/gohhsg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化云服務(wù)器、域名注冊網(wǎng)站營銷、網(wǎng)站收錄網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化
色婷婷亚洲精品综合网| 国产精品不卡免费视频| 视频在线播放你懂的一区| 亚洲中文在线观看小视频| 一区二区日本一区二区欧美| 一区二区日本一区二区欧美| 国产二级一级内射视频播放| 日本丰满大奶熟女一区二区| 国产自拍欧美日韩在线观看| 91欧美激情在线视频| 日韩一区二区三区有码| 国产日韩欧美国产欧美日韩| 深夜少妇一区二区三区| 成人精品欧美一级乱黄| 亚洲熟妇av一区二区三区色堂| 亚洲欧美日韩另类第一页| 久久精品亚洲精品一区| 亚洲欧美国产中文色妇| 欧美不卡一区二区在线视频| 国产精品自拍杆香蕉视频| 国产不卡免费高清视频| 日韩高清一区二区三区四区| 99亚洲综合精品成人网色播| 两性色午夜天堂免费视频| 伊人国产精选免费观看在线视频| 又大又长又粗又黄国产| 国产精品免费不卡视频| 亚洲天堂久久精品成人| 日韩中文字幕有码午夜美女| 在线观看视频日韩成人| 色小姐干香蕉在线综合网| 欧美激情中文字幕综合八区| 色偷偷偷拍视频在线观看| 不卡一区二区在线视频| 国产精品福利一级久久| 亚洲精品小视频在线观看| 日韩人妻一区中文字幕| 国产亚洲欧美一区二区| 国产在线小视频你懂的| 激情内射亚洲一区二区三区 | 国产成人精品午夜福利av免费|