前端开发,尤其是mvvm类框架开发,npm包基本是不可绕开的,不过多数情况下我们只是简单的通过npm i指令去进行安装。但对于如何发布一个npm包知之甚少
package和module概念性总结
这是npm包的两个主体,package是含有package.json的包描述文件,一般指的是npm仓库中的文件,而module则是对应实体项目中的node_modules文件夹内的文件
package包的核心属性
Scoped:是一种把相关的模块组织到一起的一种方式,以@符号开头,相当于命名空间
Accessibility:private仅对作者本人或组织可见,如果指定了该属性,则包自动为Scoped;public则面向所有人
module必须是含有package.json且package中有main字段或含有index.js或是js文件
前置工作
cnpm i nrm -g 安装npm管理工具
调试
npm link name
npm unlink name
发布
本地创建项目npm-learn,并npm init -y初始化package.json文件
根文件下新增index.js作为入口,这与package.json的main保持一致
执行npm publish尝试发布
执行npm adduser,在命令行中按提示依次输入
从淘宝镜像切换回原镜像(npm config set registry https://registry.npmjs.org)
重新尝试
再次尝试npm publish
验证邮箱并修改包名称后重新尝试publish
安装
既然已经在npm仓库了,那就可以在项目中使用npm i packageName的方式安装了
新建文件夹test并npm init -y,然后执行npm i npm-learn-sup
引入并调用
更新
将say函数的输出内容做下变动
手动将版本号进行更新或者执行npm version 1.1.1
发布
切换到test文件夹,执行npm update npm-learn-sup
删除与废弃
npm unpublish packageName --force (彻底删除)
npm deprecate packageName@版本号 '废弃说明' (废弃,不影响使用)