前言:介绍Node.js包的几种管理工具(Rush, NPM,Yarn,PNPM),同时介绍完整发布一个NPM包的流程,最后介绍相关Nodejs包相关知识:
- package.json和package-lock.json文件
- 两种本地调试包的方式
- npm账户开启二次验证情况下发布包需要注意的事项
一、Nodejs包管理
- Rush:提高性能,提出“中心”包管理
- NPM: 它是当今最广泛的 JavaScript 包管理工具,它开创了包管理标准,其开发者还维护了世界上最多人使用的分布式开源 JavaScript 包管理网站 npmjs.com.
- Yarn: 它重新实现了 NPM, 与之相比,Yarn 具有相同的管理方式,但是安装速度更快,稳定性更好,而且提供了一些新特性(例如 Yarn workspaces),用于大型开发。
- PNPM: 它提供了一个全新的包管理模式,该模式解决了“幻影依赖”和“ NPM 分身”的问题,同时符号链接使之与 NodeJS 模块解析标准保持 100% 兼容。
二、注册并发布一个包
注册npm账号
- 在官网https://www.npmjs.com/注册用户账号
新建一个文件夹npm-wzutao
在此文件夹下进入bash终端键入下面命令:
npm login
登录自己的npm账号,后面发布包就会发布在该账号下。
初始化项目
键入下面命令初始化一个空项目:
npm init
也可以快速初始化创建 npm init -y
然后在该文件夹下新建index.js文件,写入如下测试代码
exports.sum = function() {
var res = 0;
for (var i=0; i<arguments.length; i++) {
res+=arguments[i];
}
return res;
}
发布包
每一个npm包都有一个版本号,发布包也需要有一个明确的版本号才能予以发布。
包版本更新
npm包发布/版本更新,都需要包的版本明确,而更新包的版本,有两种方式,
- 第一种是更改package.json文件中的version字段为指定版本号,再进行npm publish更新
- 第二种就是通过命令来更新新版本号,进而npm publish更新
通过命令来更新版本号
1.0.1版本,注意,是最后一位修改了增1
npm version patch
1.1.0版本,注意,是第二位修改了增1
npm version minor
2.0.0版本,注意,是第一位修改了增1
npm version major
包发布
最后再提交到远端npm中
npm publish
去官网可以搜索到
三、package-lock.json
不同包管理工具生成的锁定文件都不一样。
- 锁定包的版本,确保再次下载时不会因为包版本不同而产生问题
- 加快下载速度,因为该文件中已经记录了项目所依赖第三方包的树状结构和包的下载地址,重新安装时只需下载即可,不需要做额外的工作
四、package.json
项目依赖和开发依赖
- 项目依赖就是这个产品线上运营所依赖的模块,在文件的dependencies字段
npm install 包名
- 开发依赖就是项目的开发阶段需要依赖,线上运营阶段不需要依赖的第三方包,称为开发依赖,devDependencies字段
npm install 包名 --save-dev
- npm install --production,在本地下载依赖的包
- 里面的script使用:npm run XXX
scripts
大型项目中,npm run xxx 运行命令常常是自行来编写相应的命令脚本
{
"name": "learn-scripts",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"runFile": "node index.js",
"commit": "git status && git add . && git-cz",
"runBashCommand": "git --version && git help -a"
},
"keywords": [],
"author": "",
"license": "ISC"
}
五、本地调试npm包的问题
相对路径测试所开发的npm包
适合项目所需的某一个npm包
比如a文件夹下有npm包b文件夹和测试插件的c文件夹,那么在c文件夹下使用npm i ../b
命令来下载本地开发的npm包。
npm link链接全局测试
适合脚手架类型的npm包
node全局包目录如下:其实就是链接使用一下而已
六、其他
npm账户开启Two-Factor Authentication
现在很多应用软件都有二级验证的功能,如果npm开启二级验证,可以提高安全性,开启后为如下:
开启了二级验证,如果发布包有如下报错:
npm ERR! code E403
npm ERR! 403 403 Forbidden - PUT https://registry.npmjs.org/@clem_b%2fweather - Forbidden
npm ERR! 403 In most cases, you or one of your dependencies are requesting
npm ERR! 403 a package version that is forbidden by your security policy, or
npm ERR! 403 on a server you do not have access to.
重新npm login登录
然后npm publish会需要输入一个Recovery Codes,在账户如下位置获取输入即可:
评论区