[誤人子弟]npm歸納常用命令

npm

快速入門

初始化描述文件

npm init [-y | -f]
# 設(shè)置默認(rèn)配置
npm set init.author.name lilith
npm set init.author.email lilith@163.com
npm set init.license MIT

基本操作

# 增 install/i
npm install <package_name> [--save/-S | --save-dev/-D | -g/-G] [--force/-f]
# 刪 uninstall/remove, rm, r, un, unlink
npm uninstall <package_name> [--save/-S | --save-dev/-D | -g/-G]
# 更新 undate/up, upgrade
npm undate <package_name> [--save/-S | --save-dev/-D | -g/-G]
# 查 list/ls/ll
npm list [--depth 0] [--save/-S | --save-dev/-D | -g/-G]

設(shè)置私有域包

私有域包以'@'符號(hào)開頭

# 初始化時(shí)指定域名
npm init --scope=scopename
# 設(shè)置全局域名
npm config set scope scopename
# 要發(fā)布公共范圍模塊抡柿,需在發(fā)布模塊時(shí)設(shè)置訪問選項(xiàng)早处,此選項(xiàng)將保留為所有后續(xù)發(fā)布
npm publish --access=public

添加標(biāo)簽

添加的標(biāo)簽會(huì)在下次 publish 時(shí)一同發(fā)布,因?yàn)?dist 標(biāo)簽與 semver 共享相同的名稱空間途样,應(yīng)避免使用以數(shù)字或字母"v"開頭的標(biāo)簽。

不可在社區(qū)不存在的版本上添加標(biāo)簽濒憋,如 v1.1.0 未發(fā)布到社區(qū)何暇,則無法執(zhí)行npm dist-tag add <pkg>@<1.0.0> beta

# npm install 默認(rèn)以最新的標(biāo)簽安裝
npm install <name>@<tag>
# 增
npm dist-tag add <pkg>@<version> [<tag>]
# 刪
npm dist-tag rm <pkg> <tag>
# 查
npm dist-tag [ls [<pkg>]]

設(shè)置 token 令牌

# 增
# 新增的token僅會(huì)出現(xiàn)一次,可及時(shí)保存在npmrc配置文件中
npm token create [--read-only] [--cidr=ids]
npm token create [--read-only] [--cidr=1.1.1.1/24,2.2.2.2/16]
# 刪
npm token revoke <tokenKey>
# 查
npm token list [--json | --parseable/--par]

cmd

npm adduser

  • 創(chuàng)建或驗(yàn)證指定注冊(cè)表中指定的用戶凛驮,并將憑據(jù)保存到文件中
  • npm login是該命令別名裆站,作用完全相同
  • 若指定 registry 和 scope,則賬戶與其關(guān)聯(lián)

npm audit

掃描項(xiàng)目是否有漏洞

# 掃描
npm audit [--json | --parseable/--par]
# 掃描并修改
npm audit fix [--force/-f | --package-lock-only | --dry-run | --production | --only=dev]

npm bugs/issues

打開包的 bug 列表 bugs.url

npm bugs [<pkgname>]

npm home

打開包的主頁 homepage

npm home [<pkg>]

npm repo

打開包的源碼倉庫 repository.url

npm repo [<pkg>]

npm ci

類似npm install黔夭,常用于自動(dòng)化環(huán)境宏胯,明顯快于常規(guī) npm 安裝速度,項(xiàng)目中必須存在 package-lock.json 或 shrinkwrap.json

npm config/c

管理 npm 配置文件

npm config set <key> <value> [--global/-g]
npm config get <key>
npm config delete <key>
npm config list [--long/-l] [--json]
npm config edit
npm get <key>
npm set <key> <value> [--global/-g]

npm link

將 npm 模塊鏈接到對(duì)應(yīng)的運(yùn)行項(xiàng)目中去
進(jìn)入npm-link-module模塊本姥,執(zhí)行npm link肩袍,此時(shí)npm-link-module被鏈接到本地,進(jìn)入需要使用的項(xiàng)目婚惫,執(zhí)行npm link npm-link-module氛赐,即可像正常依賴一樣使用該依賴

npm logout

退出登錄

npm logout [--registry=<url>] [--scope=<@scope>]
# 如創(chuàng)建額外token,退出登錄后在配置文件添加token先舷,仍可正常運(yùn)行

npm org

管理組織

npm org set <orgname> <username> [developer | admin | owner]
npm org rm <orgname> <username>
npm org ls <orgname> [<username>]

npm outdated

查看是否有已過期的包

npm outdated [[<@scope>/]<pkg>]

npm owner/author

管理包已發(fā)布包的所有權(quán)

npm owner add <user> [<@scope>/]<pkg>
npm owner rm <user> [<@scope>/]<pkg>
npm owner ls [<@scope>/]<pkg>

npm prefix

等同于 pwd艰管,可查看全局目錄前綴-g

npm prefix [--global/-g]

npm profile

從命令行更改個(gè)人配置

npm profile get [<property>] [--json | --parseable/--par]
npm profile set <property> <value> [--json | --parseable/--par]
npm profile set password
npm profile enable-2fa [auth-and-writes|auth-only] # 啟用雙重身份驗(yàn)證
npm profile disable-2fa # 禁用雙重身份驗(yàn)證

npm prune

移除無關(guān)的包

npm prune [[<@scope>/]<pkg>...] [--production] [--dry-run] [--json]

npm publish

發(fā)包

npm publish [<tarball>|<folder>] [--tag <tag>] [--access <public|restricted>] [--otp otpcode] [--dry-run]

npm unpublish

在注冊(cè)表中移除包

npm unpublish [<@scope>/]<pkg>[@<version>]

npm restart

重新啟動(dòng),將運(yùn)行停止蒋川,重新啟動(dòng)牲芋,啟動(dòng)等腳本。執(zhí)行順序如下:

  1. prerestart
  2. prestop
  3. stop
  4. poststop
  5. restart
  6. prestart
  7. start
  8. poststart
  9. postrestart
npm restart [-- <args>]

npm root

將有效的 node_modules 文件夾打印出來尔破,可查看全局目錄前綴-g
類似于 npm prefix + node_modules

npm root [--global/-g]

npm run-script/run

執(zhí)行 scripts 中的命令

# -- <args>的空格必須添加街图,如未添加會(huì)識(shí)別為配置
npm run-script <command> [--silent] [-- <args>...]

# 添加空格,為參數(shù)懒构,通過process.argv獲取 ['grep=pattern', 'name=value']
npm run test -- grep="pattern" name="value" #

# 不加空格,為配置耘擂,只可通過process.env.npm_config_獲取
npm run test --grep="pattern" --name="value"
# process.env.npm_config_grep => pattern
# process.env.npm_config_name => value

該命令具有兩個(gè)鉤子胆剧,在腳本執(zhí)行前執(zhí)行 pre-,腳本執(zhí)行后執(zhí)行 post-醉冤。如:pretest,test,posttest

npm search/s/se/find

查找包

npm search [--long/-l] [--json] [--parseable/--par] [--no-description] [search terms ...]

npm shrinkwrap

鎖定依賴包的版本秩霍,基于 node_modules 生成 shrinkwrap.json,優(yōu)先級(jí)高于 package-lock.json蚁阳。相比于 package-lock.json 向 npm4 版本及以下兼容

npm start

執(zhí)行 scripts 中的 start 命令铃绒,默認(rèn)執(zhí)行node server.js

npm stop

執(zhí)行 scripts 中的 stop 命令

npm team

管理組織團(tuán)隊(duì)和團(tuán)隊(duì)成員

npm team create <scope:team>
npm team destroy <scope:team>
npm team add <scope:team> <user>
npm team rm <scope:team> <user>
npm team ls <scope>|<scope:team>
npm team edit <scope:team>

npm test/t

執(zhí)行 scripts 中的 test 命令

npm version

迭代包版本,且生成 git 標(biāo)簽

npm version [<newversion> | major | minor | patch | premajor | preminor | prepatch | prerelease [--preid=<prerelease-id>] | from-git]

npm view/info/show/v

npm view [<@scope>/]<name>[@<version>] [<field>[.<subfield>]...]

npm whoami

顯示 npm 用戶名

npm whoami [--registry <registry>]

npx

調(diào)用項(xiàng)目安裝的模塊

運(yùn)行的時(shí)候螺捐,會(huì)到 node_modules/.bin 路徑和環(huán)境變量$PATH 里面颠悬,檢查命令是否存在
npx mocha --version等價(jià)于node-modules/.bin/mocha --version

避免全局安裝模塊

create-react-app 這個(gè)模塊是全局安裝矮燎,npx 可以運(yùn)行它,而且不進(jìn)行全局安裝
npx create-react-app my-react-app赔癌,npx 將 create-react-app 下載到一個(gè)臨時(shí)目錄诞外,使用以后再刪除
只要 npx 后面的模塊無法在本地發(fā)現(xiàn),就會(huì)下載同名模塊
--no-install 參數(shù)強(qiáng)制使用本地模塊
--ignore-existing 參數(shù)忽略本地的同名模塊

使用不同版本的 node

npx node@0.12.8 -v

發(fā)包流程

官方文檔

創(chuàng)建賬號(hào)

npm adduser

登錄

npm login
# input your Username, Password, Email
# 測(cè)試當(dāng)前賬號(hào)
npm whoami

發(fā)包

npm publish

更新

# 修改主版本號(hào)
npm version major
# 修改次版本號(hào)
npm version minor
# 修改修訂號(hào)
npm version patch
# 修改版本號(hào)后再次執(zhí)行發(fā)布命令
npm version <update_version> && npm publish
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末灾票,一起剝皮案震驚了整個(gè)濱河市峡谊,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌刊苍,老刑警劉巖既们,帶你破解...
    沈念sama閱讀 216,997評(píng)論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異正什,居然都是意外死亡贤壁,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門埠忘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來脾拆,“玉大人,你說我怎么就攤上這事莹妒∶” “怎么了?”我有些...
    開封第一講書人閱讀 163,359評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵旨怠,是天一觀的道長(zhǎng)渠驼。 經(jīng)常有香客問我,道長(zhǎng)鉴腻,這世上最難降的妖魔是什么迷扇? 我笑而不...
    開封第一講書人閱讀 58,309評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮爽哎,結(jié)果婚禮上蜓席,老公的妹妹穿的比我還像新娘。我一直安慰自己课锌,他們只是感情好厨内,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,346評(píng)論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著渺贤,像睡著了一般雏胃。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上志鞍,一...
    開封第一講書人閱讀 51,258評(píng)論 1 300
  • 那天瞭亮,我揣著相機(jī)與錄音,去河邊找鬼固棚。 笑死统翩,一個(gè)胖子當(dāng)著我的面吹牛仙蚜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播唆缴,決...
    沈念sama閱讀 40,122評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼鳍征,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了面徽?” 一聲冷哼從身側(cè)響起艳丛,我...
    開封第一講書人閱讀 38,970評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎趟紊,沒想到半個(gè)月后氮双,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,403評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡霎匈,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,596評(píng)論 3 334
  • 正文 我和宋清朗相戀三年戴差,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片铛嘱。...
    茶點(diǎn)故事閱讀 39,769評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡暖释,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出墨吓,到底是詐尸還是另有隱情球匕,我是刑警寧澤,帶...
    沈念sama閱讀 35,464評(píng)論 5 344
  • 正文 年R本政府宣布帖烘,位于F島的核電站亮曹,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏秘症。R本人自食惡果不足惜照卦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,075評(píng)論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望乡摹。 院中可真熱鬧役耕,春花似錦、人聲如沸趟卸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽锄列。三九已至,卻和暖如春惯悠,著一層夾襖步出監(jiān)牢的瞬間邻邮,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工克婶, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留筒严,地道東北人丹泉。 一個(gè)月前我還...
    沈念sama閱讀 47,831評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像鸭蛙,于是被迫代替她去往敵國(guó)和親摹恨。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,678評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容