使用NPM工具进行包管理
- 通过NPM提供的npm命令来进行依赖包的下载、升级和移除
- 通过package.json来定义软件包的元信息、开发依赖(开发或测试需要)、部署依赖(运行时需要)
- 依赖存储在node_modules中
- 依赖在项目之间是隔离的,全局安装(-g)会使它成为命令行工具而不是全局依赖
npm自定义包制作流程
-
准备
-
创建自己的npm包
- 创建一个空的包项目文件夹
- 初始化npm包
cd $package_root_path npm init
- 创建出来的package.json样子如下
{ "name": "your-npm-package-name", "version": "1.0.0", "description": "your npm package description", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "your developer name", "license": "MIT OR OTHER LICENSE", "keywords": [ "js", "something key words" ] }
- 创建一个index.js文件作为包入口文件(和package.json下的main保持一致)
- 编写完善index.js
-
发布npm包
- 添加登录用户,请确保当前链接源是官网,使用nrm工具可以快速查看和切换
npm adduser
- 发布上传包
npm publish
- 如果是发布到公开组织(public organization)
npm publish --access public
- 添加登录用户,请确保当前链接源是官网,使用nrm工具可以快速查看和切换
-
引用和使用npm包
- 下载安装依赖包
//安装但不写入package.json npm install your-package-name //安装并写入package.json的"dependencies"中 npm install -S your-package-name //安装并写入package.json的"devDependencies"中 npm install -D your-package-name //安装指定版本 npm install -S your-package-name@1.0.0 //全局安装 npm install -g your-package-name
- 调用npm包中的方法
//默认导入 import something from 'your-package-name' //模块化导入 import {something} from 'your-package-name'
- 下载安装依赖包
-
更新npm包
- 修改内容
- 更新版本号
//直接修改package.json中的version "version": "1.1.0" //或者使用命令修改 npm version 1.1.0
- 再次发布
npm publish //OR npm publish --access public
- 更新使用依赖包
//手工修改package.json中对应包的版本号,然后执行 npm update your-package-name //直接命令行更新到指定版本 npm update your-package-name@1.1.0 -S //或者更新到最新版本 npm update your-package-name@latest -S
-
撤销发布的npm包
如果因为某种原因需要撤销已经发布提交的npm包
超过24小时后无法撤销npm --force unpublish your-package-name
- 注意
- 在24小时加上 --force强制执行才可以实现。即使撤销了发布的包,再次发布的时候也不能与之前被撤销的包的名称和版本其中之一相同,包名和包版本组成唯一标识,即使撤销也并不会消失,不能重复使用。
- 撤销的包不能立马再次发布,撤销24小时后才能再次发布。