鎵嬫満鐪嬬墖绂忓埄姘镐箙鍥戒骇鍦ㄧ嚎瑙嗛?

2020-04-30 瀏覽:219
一個單行代碼 npm 包使得 JavaScript 生態系統陷入混亂

上周六,一個很小的 JavaScript 庫的更新使得年夜部門 JavaScript 生態零碎墮入了雜亂。據ZDNet指出,興許稀有百萬個項目正在這一事宜中遭到了影響。

而使人感觸驚訝地是,引人全部雜沓的僅僅是一個“單行代碼(one-liner) ”的 JavaScript 庫。這也是第兩次產生由小型 JavaScript 項目引人遍及題目的情形。第一次是產生正在 2016 年 3 月,其時 left-padJavaScript 庫的作者(一個統共只要 17 行代碼的項目)倏忽決議取締宣布該庫,以相似的體式格局損壞了數千個項目。

而上周末招致一系列成績的這個軟件包名為is-promise,該庫由兩行原始源代碼組成,開闢職員或許經由過程單行挪用正在本身的項目中利用它。其手段是閃開發職員測試 JavaScript 工具能否為“Promise”函數︰用于消費情況中時,該函數前往 yes 或者 no 的布爾值。

但是,無論只是兩行實行基礎查抄的代碼,is-promise 庫仍是現今最受迎接的 JavaScript npm 軟件包(庫)之一。按照 GitHub 的說法,該庫是凌駕 340 萬個項目標一部門,並被 766 個其他 JavaScript 庫用作依附項。

上周末,is-promise 庫停止了更新,以獲取作為ES 模塊(JavaScript 言語運用的尺度化模塊體系)的支撐。然而,is-promise v.2.2.0 版本卻未遵照準確的 ES 模塊尺度。是以更新宣布後,因為其沒有精確的 ES 模塊支撐[1,2,3,4,5,6,7,8,9,10] ,正在各自的建立鏈(build chain)中應用 is-promise 的浩繁項目紛繁開端泛起成績。

該毛病敏捷地激發了連續串的影響,領域涵蓋至封鎖源 JavaScript 代碼庫和 JavaScript 生態體系中一些最年夜的項目。個中包含有︰Facebook 的 Create React App(用于創立 React 使用步伐的尺度模板)、谷歌的 Angular.js 框架、谷歌的 Firebasse-tools、亞馬遜的 AWS Serverless CLI、Nuxt.js 和 AVA 等。

Sothisjusthappened.Is-Promisejustmadealittlechangeanditbrokemultiplepackages.SofarasI'vereaditsbrokenFirebase-tools,angularcli,awsservelesscli,createreactapp,possiblymore.https://t.co/3ZZofevWNR—Preet?(@TmPreet)April25,2020

該 bug 並沒有致使現有項目解體,因而沒有呈現實踐的停運毛病,但其確切害得廣闊開闢職員沒法編譯各自項手段新版本。

以後,is-promise團隊公布了一個更新,但並未能辦理該題目,終究仍是正在 v2.2.2 版本中撤回了撐持 ES 模塊的效率。

與 2016 年的狀況一樣,is-promise 事務激發了人們的疑難,自己開端接頭 JavaScript 生態體系中是否是真的必要單行代碼庫。就像 2016 年和多年前其他編程言語的生態體系所提出的那樣,異樣的概念再次被提了進去。

有人以為,若是開拓職員創立的庫只要短短幾行代碼,對最可有可無的操縱而言,模塊化做得過火了,毫無須要。還有人以為,須要對于這些項目舉行模塊化,由于以這類體例,“工作 A”或許正在一個模塊中舉行辦理,而沒有是讓成千上萬的開拓職員正在本身的項目中以差別的體式格局來處置它。

實際上,相關模塊化的會商曾經具有了多年,是以正在短時間工夫內能夠也得沒有出甚麼結論。

www.vrsoccer.cn
發布:admin | 分類:評測 | Tags:

相關文章

發表評論:

◎歡迎參與討論,請在這里發表您的看法、交流您的觀點。
Theme By