npm
此條目需要补充更多来源。 (2012年5月29日) |
開發者 | Isaac Z. Schlueter |
---|---|
当前版本 | 1.1.48(2012年8月7日 | )
源代码库 | |
编程语言 | Node.js |
平台 | Linux Windows OSX |
许可协议 | MIT License |
网站 | npmjs |
Node包管理器(Node Package Manager)。它是一個Node.js的包管理器,運行在命令行下,用於管理應用的依賴。
按照作者的定義,npm不是「Node Package Manager」的縮寫,[1]而是「npm is not an acronym」的遞迴縮寫重表。
若將「npm is not an acronym」寫成 "ninaa" ,那麼正好變成「npm is not an acronym」的仿單字縮寫,反倒與其字面所述相反,從而將是錯誤的命名。
「仿單字縮寫」意指該句縮寫後本身必須為可唸的單字形態,這是 acronym 與 abbreviation 主要的不同,abbreviation 並不需要是可唸的字,並且可以是以任意規則將文字縮短後的字,例如 abbreviation 本身可縮短為 "abbr",並沒有硬性規定只能使用第一個字母。
所謂「縮寫重表」是指該字本身已經存在,而重新表述為與原先不同的意義,例如 AMBER Alert 為美國與加拿大,當國內確認發生兒童綁架案時,透過各種媒體向社會大眾傳播的一種警戒告知,AMBER 源於 Amber Hagerman 之名而重新表述為 "America's Missing: Broadcast Emergency Response"。
因此,若將「npm is not an acronym」縮寫為前三個字母 npm,重新表述則是將此 npm 再表述為「npm is not an acronym」並縮寫成 npm,如此無限遞迴仍然是 npm。
若以首字母方式縮寫而假設 npm 為「 n.. p.. m.. 」並將「npm is not an acronym」視為 n 的展開,根據 backronym 的意義,重新表述後再縮寫仍然為原字,即使 p 和 m 未知,結果並沒有不同;但根據奧卡姆剃刀原理,這顯然不是正確的解讀方式。
從Node.js0.6版本開始,npm被自動附帶在安裝包中。
例子
安裝 LESS:
$ npm install less