npm【实用教程】内含 npm包的开发、发布、安装、更新、搜索、卸载、查看、版本号更新规则、package.json详解等

npm 包

npm 包即符合 npm官网 规范的 js 模块,通常会发布到 npm 官网中,供大家下载使用。

npm 包的详细信息

npm 包的详细信息储存在 npm 包的 package.json 文件中,通常包含以下信息:

  • name - 包名。
  • version - 包的版本号。
  • description - 包的描述。
  • homepage - 包的官网 url 。
  • author - 包的作者姓名。
  • contributors - 包的其他贡献者姓名。
  • dependencies - 依赖包列表。如果依赖包没有安装,npm 会自动将依赖包安装在 node_module 目录下。
  • repository - 包代码存放的地方的类型,可以是 git 或 svn,git 可在 Github 上。
  • main - main 字段指定了程序的主入口文件,require(‘moduleName’) 就会加载这个文件。这个字段的默认值是模块根目录下面的 index.js。
  • keywords - 关键字

npm 包的版本号

npm 包的版本号分为X.Y.Z三位,分别代表主版本号、次版本号和补丁版本号。
当代码变更时,版本号按以下原则更新:

  • 只是修复bug,需要更新Z位。
  • 新增了功能,但是向下兼容,需要更新Y位。
  • 有大变动,向下不兼容,需要更新X位。

查看指定包的版本号

npm list 包名

安装包 npm install

可简写为 npm i

本地安装

将安装包下载到 ./node_modules 中(运行 npm 命令时所在的目录),若没有 node_modules 目录则会创建该目录

npm install 包名

使用时,无需指定第三方包路径。

var express = require('express');

全局安装 -g

会将包下载到 node.js 的安装目录中的 node_modules 目录中,所有项目都可以使用全局安装的包

npm install 包名 -g

下载安装 cnpm

因 npm 默认下载源很慢,甚至无法下载,通常需要改用淘宝源的 cnpm 下载安装包

npm install -g cnpm --registry=https://registry.npmmirror.com

修改 npm 的下载源

也可以将 npm 的下载源自定义为淘宝源

npm config set registry https://registry.npmmirror.com

查看 npm 的下载源

npm config get registry

下载安装 pnpm 和 yarn

pnpm【更推荐】 和 yarn 是比 npm 更优秀的包管理工具,可以避免重复下载包,节省空间。

cpm i -g pnpm yarn

将 yarn 的下载地址改为淘宝源

yarn config set registry https://registry.npmmirror.com

更新包 npm update

npm update 包名

搜索包 npm search

npm search 包名

卸载包 npm uninstall

npm uninstall 包名

查看当前目录下的所有包

npm ls

查看全局安装的所有包

npm list -g

开发 npm 包

  1. 新建文件夹 mypack-test
  2. 用vscode 打开文件夹 mypack-test
  3. 终端执行 npm init 生成 package.json 文件,按提示输入相关信息或一路回车,最后输入 y 回车即可。
    在这里插入图片描述
    蓝框内的部分为包的信息,可根据需要自行输入(或等生成package.json后再修改)
  • package name 包名,默认为项目名称
  • version 包的版本号,默认为 1.0.0
  • description 包的描述信息
  • entry point 包的入口文件(包内的所有内容,要在此文件对外导出),默认为 index.js
  • test command 测试命令,默认为 “echo “Error: no test specified” && exit 1”
  • git repository 包的远程 git 仓库
  • keywords 关键字
  • author 包的作者
  • license 开源文件协议,默认为 ISC
  1. 新建文件index.js,内容为
    要点:定义的函数/变量一定要对外导出!

    /*
      函数功能——求和
      参数——两个数字
    */
    function sum(a, b) {
      return a + b;
    }
    
    module.exports = {
      sum: sum,
    };
    
    
  2. 新建文件README.md,内容为包相关的信息

  3. 新建文件 .npmignore,内容为发布时不需要打包的文件,如

    node_modules
    *.log
    

至此,已完成 npm 包的开发,若想对外开放下载,请继续发布 npm 包

发布 npm 包

先检查 npm 的下载源是否为官方源,若不是,则需重新设置为官方源

npm config set registry https://registry.npmjs.org/
  1. 注册 npm 账号
npm adduser

或者直接去官网注册 https://www.npmjs.com/

  1. 登录 npm 账号
npm login

按提示依次输入npm 的账号、密码、邮箱、邮件中收到的一次性校验码
在这里插入图片描述
3. 发布

npm publish

若遇到以下报错

npm ERR! code E403
npm ERR! 403 403 Forbidden - PUT https://registry.npmjs.org/mypack-test - You do not have permission to publish "mypack-test". Are you logged in as the correct user?

则说明 npm 官网已存在当前包。

包名的注意事项

  1. 不能和已发布的包重名(可在官网上搜索一下,看是否已存在目标包名)
  2. 包名只能由小写字母、短横线、@ 、数字构成,@通常用于接组织名称,如 @vue/use

解决方案
将 package.json 中的包名 name 修改为一个 npm 官网不存在的包名,再发布即可。

如最终我的包名为 mypack-test-999

在这里插入图片描述

发布成功后,在官网即可查到
https://www.npmjs.com/package/mypack-test-999

在这里插入图片描述

撤回发布的包

npm unpublish 包名@目标版本号 -f

试用原创的 npm 包

  1. 新建文件夹 test_mypack
  2. 用 vscode 打开文件夹 test_mypack
  3. 安装包
npm i mypack-test-999

在这里插入图片描述

  1. 新建文件 index.js,内容为
import { sum } from "mypack-test-999";

let result = sum(6, 2);
console.log(result);
  1. 执行 index.js
    在这里插入图片描述
    出现图中的报错,则需要在 package.json 中添加
  "type": "module",

再次执行 index.js,得到预期结果,验证成功!
在这里插入图片描述

npm 包版本号的语义化

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • release 为发行版

升级项目的版本号 npm version

  • 标记为先行版–内测版 alpha
npm version prepatch --preid=alpha
  • 升级先行版–内测版 alpha 的版本号
npm version prerelease --preid=alpha
  • 标记为先行版–公测版 beta
npm version prerelease --preid=beta
  • 升级先行版–公测版 beta的版本号
npm version prerelease --preid=beta
  • 标记为先行版–候选版 rc
npm version prerelease --preid=rc
  • 升级先行版–候选版 rc 的版本号
npm version prerelease --preid=rc
  • 标记为正式版本
npm version prepatch
  • 升级正式版本的修订版本号
npm version prepatch
  • 升级正式版本的次版本号
npm version minor
  • 升级正式版本的主版本号
npm version major
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

朝阳39

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值