只有幾行代碼的庫,坑了數百萬個項目

只有幾行代碼的庫,坑了數百萬 JS 項目

上週末,一個 npm 小項目的更新給整個 npm 生態系統製造了一場混亂,影響到了數百萬 JS 項目。

這個庫就是 is-promise ,僅包含了幾行代碼,其功能是讓開發者測試一個 JS 對象是否是 Promise,其它 JS 項目可通過一行代碼調用使用該庫。

儘管這個庫沒幾行代碼,但它卻是最流行的 npm 包之一,超過 340 萬個項目使用。

上週末 is-promised 發佈了一個更新,結果由於它不符合正確的 ES 模塊標準,導致使用該庫的其它項目在構建時出錯。問題並沒有導致現有 JS 項目崩潰,而主要無法編譯新版本。

許多知名的 JS 項目都受到影響,其中包括 Facebook 的 Create React App,Google 的 Angular.js 框架,Google 的 Firebasse-tools,亞馬遜的 AWS Serverless CLI,Nuxt.js 等等。

難道程序員連代碼都不會寫了嗎?

npm 生態系統的依賴問題,早在 2016 年就引發過類似事件,有一個 NPM 庫開發者撤回了他的代碼(代碼並不多,也就幾行),導致諸多重量級應用(比如 React 和 Babel)都出問題了。

四年前,這個事情就引發激烈討論。曾有人爲此發出疑問:難道程序員連代碼都不會寫了嗎? 

舉例來說,有一個叫 isArray 的軟件包,當時其一天的下載量有 88 萬,2016 年2 月有 1800 萬次下載量,它本身就只有一行代碼。

NPM 生態系統中的許多開發者,看起來寧願複用其他人寫好的代碼而不是自己寫。這種做法存在嚴重的安全隱患,因爲一個被廣泛使用的軟件包存在bug,你的代碼也會受到影響,而你卻無法自己去修正。

喜歡就點個"在看"唄,留言、轉發朋友圈

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章