Yarn将用TypeScript重写,Flow惨遭亲爹抛弃!
1月25日,Yarn官方團(tuán)隊(duì)在GitHub issue中宣布將對Yarn進(jìn)行重大更改,主要包括:將代碼庫從Flow移植到TypeScript,不再支持Node 4和Node 6,并為Yarn新增了一些功能等,這個(gè)更改項(xiàng)目代號(hào)為Berry,目的是增強(qiáng)Yarn優(yōu)勢,彌補(bǔ)弱勢。
Yarn是Facebook開源的一款號(hào)稱代替npm的js包管理工具,相對npm來說,Yarn具有安裝模塊的速度更快、支持離線模式、兼容npm與bower工作流以及支持兩種軟件倉庫混用等優(yōu)勢。這次的改進(jìn)主要是針對Yarn v2及其之后的版本,具體規(guī)劃如下。
主要變化
lockfile(和配置)格式將成為YAML的嚴(yán)格子集;
添加對插件的支持;
Yarn將被重新設(shè)計(jì)成為API,與CLI有相似的功能,當(dāng)前,在使用Yarn時(shí),開發(fā)者唯一的選擇是命令行界面,Yarn不提供實(shí)現(xiàn)復(fù)雜邏輯的原語(無論是解析器、鏈接器還是訪問配置),但是,這將會(huì)有改進(jìn),以后它將可以在腳本中使用組件-無需再解析package.json的內(nèi)容,無需運(yùn)行解決方案等,Yarn將能抽象這些所有繁雜的工作;
不再支持Node 4和Node 6;
日志系統(tǒng)進(jìn)行大修改,改用TypeScript后可以獲取診斷出來的錯(cuò)誤代碼,每個(gè)錯(cuò)誤、警告和通知都會(huì)賦予一個(gè)獨(dú)特的代碼,該代碼將會(huì)被記錄下來,并附有解釋;
當(dāng)前的一些功能如autoclean將被移動(dòng)到contrib插件中,它們?nèi)允苤С?#xff0c;但可能與標(biāo)準(zhǔn)bundle的發(fā)布周期不同;
緩存文件格式將從Tar切換到Zip,這為隨機(jī)訪問提供了更好的特性;
Yarn代碼庫將從Flow移植到TypeScript中,這也是jest用TS重寫之后,Facebook的又一個(gè)代碼庫遷移的項(xiàng)目。
雖說Yarn現(xiàn)在用的Flow很友好,但Yarn團(tuán)隊(duì)希望第三方貢獻(xiàn)者能更輕松幫助他們維護(hù)Yarn,很多開發(fā)者認(rèn)為,這是因?yàn)門S有很好的社區(qū),背后有更可靠更強(qiáng)大的公司——微軟的支持,在調(diào)試上,它可以節(jié)省大量的時(shí)間,自然也就比JavaScript更受歡迎,而且,相對Flow來說,開發(fā)者對TS更為熟悉,上手更為容易。
新增功能
嵌套工作區(qū)(Nested workspaces)將支持開箱即用;
無論在哪個(gè)工作區(qū),運(yùn)行yarn run foo:bar將運(yùn)行foo:bar腳本;
引入新的命令yarn constraints,該命令允許你跨工作區(qū)執(zhí)行約束(constraints);
無論底層操作系統(tǒng)是怎樣的,在腳本字段中編寫posix命令行都將起作用;
緩存將完全變成原子性,多個(gè)Yarn實(shí)例將能夠在同一緩存上并發(fā)運(yùn)行,而不會(huì)有破壞數(shù)據(jù)的風(fēng)險(xiǎn)等。
Yarn的價(jià)值觀:開發(fā)優(yōu)先
Yarn團(tuán)隊(duì)認(rèn)為程序包管理器不應(yīng)該是生產(chǎn)服務(wù)器上運(yùn)行的工具,在那里運(yùn)行的代碼越多,出現(xiàn)問題的可能性就越高,最終會(huì)導(dǎo)致生產(chǎn)系統(tǒng)崩潰。而Yarn以開發(fā)優(yōu)先,意味著Yarn是一個(gè)開發(fā)工具,它的應(yīng)用最多就是到克隆代碼庫這一步了,其中包括即插即用,在設(shè)計(jì)時(shí)就考慮到了這一點(diǎn)。
過去幾年中,JavaScript項(xiàng)目增加的復(fù)雜性以適應(yīng)人們發(fā)現(xiàn)的越來越多的用例,Yarn團(tuán)隊(duì)認(rèn)為包管理應(yīng)該處于一個(gè)獨(dú)特的地位,幫助減少一些負(fù)擔(dān),使用戶能夠輕松管理他們的項(xiàng)目。同時(shí),在項(xiàng)目或應(yīng)用程序處于不安全模式時(shí),一個(gè)合格的包管理器應(yīng)該有提示或警告的責(zé)任。
由于單個(gè)項(xiàng)目永遠(yuǎn)無法滿足開發(fā)人員的所有需求,生態(tài)圈中出現(xiàn)了大量的項(xiàng)目,但是Yarn并不打算與他們競爭,而是加強(qiáng)自身,賦予開發(fā)者更好的能力。
詳情請查看GitHub:https://github.com/yarnpkg/yarn/issues/6953
更多內(nèi)容請關(guān)注前端之巔。
總結(jié)
以上是生活随笔為你收集整理的Yarn将用TypeScript重写,Flow惨遭亲爹抛弃!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: shanchu
- 下一篇: 云南旅游市场整治呈压倒性态势 旅游人次及