如何發(fā)布自己的 npm 包?

一. 準(zhǔn)備工作

1. 注冊(cè) npm 賬號(hào)

還沒(méi)有 npm 賬號(hào)?去官網(wǎng)注冊(cè): https://www.npmjs.com/
需要記住用戶名、密碼、郵箱

2. 查看本地 npm 鏡像,如果不是默認(rèn)的,需要改回來(lái)

npm config get registry

重置鏡像路徑

npm config set registry https://registry.npmjs.org

之后有需要再切換回國(guó)內(nèi)加速鏡像

npm config set registry https://registry.npm.taobao.org

二、創(chuàng)建 npm 包

在本地創(chuàng)建包目錄,名為 selfinfo,進(jìn)入到目錄下面執(zhí)行

npm init

初始化創(chuàng)建 package.json 包的信息

name:包名。
version:版本號(hào),以后更新也要用到。
description:包的描述性文字。
main:包的入口文件,默認(rèn)根目錄的index.js。
還有其它就不一一介紹了

注意這里 name要唯一,不能和已發(fā)布的包重名,你可以到官網(wǎng)(https://www.npmjs.com/)搜索是否已經(jīng)有了

{
  "name": "selfinfo",
  "version": "1.0.0",
  "description": "The introduction of Timfan",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "timfan",
  "license": "ISC"
}

然后我們?cè)诎夸浿袆?chuàng)建示例代碼 index.js

export default "hello world!";

三、發(fā)布 npm 包

1. 在終端登錄 npm 包管理平臺(tái)

npm adduser

執(zhí)行命令后依次輸入用戶名、密碼、郵箱,最終輸出如下內(nèi)容表示登錄成功。
Logged in as timfan on [https://registry.npmjs.org/.](https://registry.npmjs.org/.)

2. 開始發(fā)布

npm publish

第一次執(zhí)行可能會(huì)提示:you must verify your email before publishing a new package: www.npmjs.com/email-edit,按照提示打開這個(gè)網(wǎng)址,輸入第2步配置的郵箱,然后登錄郵箱點(diǎn)擊郵件進(jìn)行驗(yàn)證即可。

E:\private\selfinfo>npm publish
npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.
npm notice
npm notice package: selfinfo@1.0.0
npm notice === Tarball Contents ===
npm notice 236B package.json
npm notice === Tarball Details ===
npm notice name:          selfinfo
npm notice version:       1.0.0
npm notice filename:      selfinfo-1.0.0.tgz
npm notice package size:  254 B
npm notice unpacked size: 236 B
npm notice shasum:        02b5c81a596c463cc7a9e060b5494c2f3a2d5ef1
npm notice integrity:     sha512-+OrYPim/sQhYy[...]/3vc3/qaOLJ6g==
npm notice total files:   1
npm notice
npm notice Publishing to https://registry.npmjs.org/
+ selfinfo@1.0.0

我們可以登錄官網(wǎng)自己賬號(hào)下查看發(fā)布的包是否成功


1680071287216-1a13b0ac-cd10-45c8-8512-7938964c9b90.png

或者通過(guò)命令 npm install <package-name>

E:\private\test>npm install selfinfo
npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead.

added 1 package, and audited 2 packages in 47s

found 0 vulnerabilities

3. 更新包

后面如果我們需要升級(jí)包,改了包的代碼,同步更新到包管理平臺(tái) npm,需要修改 package.json中的版本號(hào),還是執(zhí)行

npm publish

四、優(yōu)化發(fā)布過(guò)程

為了避免每次發(fā)布、更新 npm 包需要執(zhí)行一堆的命令,可能很難記住先后順序,我們將執(zhí)行的命令寫進(jìn)終端可執(zhí)行的文件 shell 腳本中:

#!/usr/bin/env bash
set -e

# 修改npm源地址
npm config get registry
npm config set registry=http://registry.npmjs.org

# 登陸輸入自己的npm賬號(hào)和密碼,還有郵箱
echo '登錄npm'
npm login

echo "發(fā)布中..."
npm publish

# 改回npm源地址
npm config set registry=https://registry.npm.taobao.org
echo -e "\n發(fā)布成功\n"
exit

則每次只需執(zhí)行該 shell 文件即可:sh "文件名"

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容