准备工作
- 创建npm账号
- 准备好要发布的js文件
开始
注意,下述所有指令最后都运行在即将发布的npm包目录下
初始化
如果发布包并不是git仓库,或者缺少package.json文件,可以使用命令进行初始化
npm init
按照要求填写包名、作者、描述、文件入口、协议类型等信息后会自动生成一个package.json文件。
可以对生成后的文件进行修改或添加新属性,比如依赖包。
登录npm
在执行发布命令前必须先登录npm账号
npm login
发布npm
正式执行发布命令之前,请务必注意
- 不要缺少README.md或Readme_xx.md文件
- 确认package.json中的main属性是否正确
- 确认要发布的包目录结构是否正确,这决定了你的包能否进行二级(模块)导入,比如只导入func.js的collection模块
import * as coll from '@holyhigh/func.js/collection';
- 如果不是首次发布,需要确认package.json中的version属性是否与之前冲突,这个可以通过版本指令进行查看
npm view 包名 version
或
npm version
!!!注意,npm版本号并不取决于你的package文件中的定义,而是在npm仓库进行管理,所以务必谨慎对待版本号,不要出现发布异常
以上确认完毕后即可执行发布命令
npm publish
或
npm publish --access public 带命名空间
发布时会寻找package.json文件,如果命令执行目录中没有该文件需要额外指定package.json文件所在目录。详细指令参数可以查看本文末尾连接。
删除npm
如果发布了多个版本后想取消提供某个发行版,可以对指定版本下架。比如下架0.1.0版本
npm unpublish @holyhigh/func.js@0.1.0
附录
- 查看NPM指令
- @holyhigh/func.js
- 如果发布时出现403错误,并在错误信息中出现 npm.taobao 字样,表示你正在使用taobao的npm源,需要切换到npmjs源
npm config set registry=http://registry.npmjs.org
- 如果发布时出现404错误,检查包名是否使用了命名空间并使用对应的发布命令。如果正常可以关闭窗口,重新登陆后尝试