Skip to main content

套件管理器NPM 12收緊安裝預設行為,相依腳本、Git與遠端網址來源將需明確允許

Posted in 業界新聞
新聞

NPM是Node.js生態系常用的套件管理工具,許多JavaScript專案會透過它安裝開發所需的函式庫。過去在安裝套件時,部分相依套件可自動執行安裝前(preinstall)、安裝中(install)或安裝後(postinstall)腳本,用來完成編譯、檢查環境或產生必要檔案。NPM 12之後,這類腳本若未被專案明確允許,安裝時將不再自動執行,另外,來自Git、file與link相依的prepare腳本,也會受到相同限制。

對腳本行為調整會影響部分需要原生模組編譯的Node.js套件。即使套件本身沒有明確寫出安裝腳本,只要安裝過程需要執行隱含的編譯動作,也會被視為需要事先允許的行為,例如含有binding.gyp,但未明列install腳本的套件。

除了安裝腳本,NPM 12也將收緊非一般套件登錄來源的相依項目。未來NPM安裝程序不會預設解析Git相依,也不會預設解析來自遠端網址的套件檔案,除非使用者或專案透過--allow-git或--allow-remote旗標明確允許。官方說明,Git相依曾存在即使關閉腳本執行,仍可能透過設定覆寫Git執行檔的風險,因此在12版一併調整預設信任範圍。

NPM已在11.16.0以上版本提供升級前的警示機制,讓開發團隊在12版正式推出前,先掌握受影響的套件。開發團隊可先升級到NPM 11.16.0或更新版本,執行平常的安裝流程並檢查警告,再評估相依套件的安裝腳本執行權限,以及Git或遠端網址來源的使用必要性。

NPM 12預設行為從自動執行或解析改為明確授權,將使專案在升級前需要重新檢視相依來源與安裝流程,特別是仍相依Git套件、遠端網址套件,或安裝期間需執行編譯動作的專案。

View original 0 Likes 0 Boosts

Comments (0)

No comments yet.