前言
当你在完成一个个工程项目时,忽然发现需要某个需求实现工具,恰好此时你发现npm或者git上还没有这样的工具,或者没有完全满足你要求的工具。
是时候展现真正的技术了,你可以自己实现它,并且发布到npm上,作为一个轮子供其他人使用,这将是一件令程序员兴奋的事。
在你发布的npm包右侧可以看到每天的下载量。这在你的简历里也是一个亮点。
下面,我将手把手教你发布自己的NPM包!
1.注册NPM 账号
注册地址:www.npmjs.com/
2.初始化自己要发布的项目
搭建本地环境:安装node.js,包含了npm命令。 新建目录,在该目录下,初始化项目:npm init。 按照提示填写初始化信息,我的模块名称为:node-cpdir,初始版本号:v1.0.0。 模块名称需遵循相关政策要求:www.npmjs.com/policies , 不能够与已有NPM模块名冲突等等。
{
"name": "node-cpdir",
"version": "1.0.0",
"description": "A tool to copy a directory to another.",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": ["copydir", "copydir", "moveDir"],
"author": "Young",
"license": "ISC"
}
-
name
你的模块名, 需要保证唯一,npm仓库上的模块名是不能重复的 -
main
描述了当你用require('modulename')
引用这个模块的时候,引用的是哪个文件,这个字段的值你可以采用默认的或者修改成你项目中任何一个有效的文件 -
keywords
为别人搜索到你的包的关键字 -
author
就是你了,但是如果你的项目不是你一个人来发的,那么你也应该将你的开发伙伴一起添加进去
3.登录npm,发布自己的npm包。
npm login
根据提示输入之前注册的账号、密码。 发布npm包到公共平台:
npm publish --access=public
此时在自己个人的npm账号主页可以看到该包。
4.使用自己发布的包(模块)的示例代码:
安装之前发布的npm包:
npm install node-cpdir
5.更新自己的NPM包(模块)及 readme文件
修改代码和readme.md后,执行命令:
npm version patch
npm publish
npm version后面参数说明:
patch:小变动,比如修复bug等,版本号变动 v1.0.0->v1.0.1
minor:增加新功能,不影响现有功能,版本号变动 v1.0.0->v1.1.0
major:破坏模块对向后的兼容性,版本号变动 v1.0.0->v2.0.0
6.发包常见错误:
-
处于错误的npm源:
npm ERR! 403 Forbidden - PUT http://registry.npm.pt.mi.com/copydir - no_perms
此时需要使用nrm
切换到正确的官方npm源npm -------- https://registry.npmjs.org/
-
未登录或切换源后未重新登录:
npm ERR! 401 Unauthorized - PUT https://registry.npmjs.org/cpdir - You must be logged in to publish packages.
需要重新npm login
-
包名重复:
npm ERR! 403 Forbidden - PUT https://registry.npmjs.org/cpdir - You do not have permission to publish "cpdir". Are you logged in as the correct user?
需要重命名你的package.json
中的name
。即使你在npm官网没有搜到你预设的包名,它可能也被发布占用过,需要重新考虑。