Skip to content

npm 发包 ​

前言导读 ​

npm 是 Node Package Manager 的缩写,是 Node.js 官方提供的包管理器,使开发者更方便地分享、安装和管理代码。

当我们开发了一些功能、工具、组件模块,想要分享出来供他人使用,可以将其在 npm 上发布。好处在于不用再发送文件安装依赖等操作,只需用过命令行 npm install xxx 安装后引入即可使用,也有利于版本更新时方便管理。

注册 npm 账号 ​

  1. 前往 npm 官网

  2. 点击右上角 sign up

  3. 输入 用户名、邮箱、密码、勾选同意,跳转等待邮箱验证

TIP

用户名一旦通过,后续不可修改

准备项目 ​

新建或者使用已有项目

bash
npm init --yes
npm init --yes

发包信息在于 package.json 文件

json
{
  "name": "my-package", // 包名
  "version": "1.0.0", // 版本
  "description": "", // 描述
  "main": "index.js", // 主要文件
  "type": "module",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": ""
}
{
  "name": "my-package", // 包名
  "version": "1.0.0", // 版本
  "description": "", // 描述
  "main": "index.js", // 主要文件
  "type": "module",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": ""
}

npm 包调试 ​

发布之前本地调试,本地关联 npm 依赖,进入项目所在目录:

bash
npm link
npm link

在其他项目中使用,npm link <package name>

bash
npm link my-package
npm link my-package

取消项目与 npm 包的关联

bash
npm unlink my-package -g
npm unlink my-package -g

TIP

npm unlink 发生错误可能为没添加 -g 全局指令,[BUG] npm unlink 重大更改是故意的吗?

登录 npm ​

  1. npm 的官方源
bash
npm config set registry https://registry.npmjs.org/
npm config set registry https://registry.npmjs.org/

TIP

假如你是淘宝镜像源,它会让你跳转浏览器登录、注册 cnpm 账号,还有注意是 https ,不然会报错登录不了

  1. 检查代理,国外站点访问比较畅通
shell
npm login
npm login

输入账号、密码然后前往邮箱验证,这里就登录好了,我们在项目目录下执行发包命令就能发包了

发个人包和组织包的区别 ​

  1. 包名
  • 个人包:包名开头小写字母,支持小写字母、数字、- 符号
  • 组织包:包名@开头,例如:@vue/cli
  1. 组织包需要创建组织
  • 点击右上角头像,选择 Add Organization +
  • 输入一个未重复的名称,点击创建
  1. 发包命令方式
shell
# 个人
npm publish
# 组织/自己账号下
npm publish --access public
# 个人
npm publish
# 组织/自己账号下
npm publish --access public

从 npm 安装到本地 ​

bash
npm i my-package
# or
npm i @xxx/my-package
npm i my-package
# or
npm i @xxx/my-package
  1. 查看本地 npm 全局安装的依赖
shell
# --depth 0 表示层级
npm list -g --depth 0
# --depth 0 表示层级
npm list -g --depth 0

以我安装的为例

js
/Users/linsen/.nvm/versions/node/v18.14.2/lib
├── @zebr/zebr-frontend-cli@1.0.0  // 在这
├── corepack@0.15.3
├── create-react-app@5.0.1
├── npm@9.5.0
├── pm2@5.3.0
├── pnpm@8.14.1
├── rollup@4.13.0
├── tool-demo@1.0.0 -> ./../../../../../code/vitepress-starter/docs/demo/node-tool-demo // 本地关联依赖为这样子
└── yarn@1.22.19
/Users/linsen/.nvm/versions/node/v18.14.2/lib
├── @zebr/zebr-frontend-cli@1.0.0  // 在这
├── corepack@0.15.3
├── create-react-app@5.0.1
├── npm@9.5.0
├── pm2@5.3.0
├── pnpm@8.14.1
├── rollup@4.13.0
├── tool-demo@1.0.0 -> ./../../../../../code/vitepress-starter/docs/demo/node-tool-demo // 本地关联依赖为这样子
└── yarn@1.22.19

查看 npm 安装依赖的路径

shell
npm root -g
# /Users/linsen/.nvm/versions/node/v18.14.2/lib/node_modules
cd /Users/linsen/.nvm/versions/node/v18.14.2/lib/node_modules
code . # 在编辑器打开
npm root -g
# /Users/linsen/.nvm/versions/node/v18.14.2/lib/node_modules
cd /Users/linsen/.nvm/versions/node/v18.14.2/lib/node_modules
code . # 在编辑器打开

这样我们可以查看我们发的包或其他包的代码了