如何发布带命名的npm包呢? 经常有看到@xxx/yyy
类型的开源npm包,尝试修改package.json
的name属性为@xxx/yyy
,npm却提示发布报错,有点懵!原因是你不是收费用户,来,按以下步骤走一遍.
一 注册npm账号
去npm上注册自己的账号,这个有很多介绍,不赘述。
二 成为收费用户
哈哈,7美刀/mon,成为用户后你就可以发布@xxx/yyy
这样的库了,好处是npm包管理可以更加合理,也不会再npmjs.com上生产垃圾代码.。建议有很多开源库的同学成为收费用户^_^.
- 高级用户 再交7美刀/mon
- 普通用户 默认
npm scope初始化新包
比如你有一个npm包 yyy
,在成为收费用户后
-
登录npmjs.com
去到用户页面,添加一个组织(Organizations)名为xxx
,所有选项按默认 -
npm scope初始化目录
很简单,为npm init
命令添加一个参数,--scope=xxx
-
$ mkdir @yyy
-
$ cd @yyy
-
$ npm init --scope=xxx
-
# 使用`npm scope`初始化,`xxx`为刚刚在npmjs.com上新建的组织名
-
复制代码
- 转移源文件
将原来项目yyy的源码转移至@yyy
目录下,修改`package.json'的nam属性
-
"name": "@xxx/yyy",
-
"version": "4.0.36",
-
"description": "react凹凸库",
-
"main": "./build/index.js",
-
"license": "MIT",
-
"repository": {
-
"type": "git",
-
"url": "git+https://github.com/webkixi/aotoo.git"
-
},
-
...
-
...
-
复制代码
- 发布
默认使用npm publish
发布会报错,虽然你是收费用户,但不是高级的,不能发布private scope npm包,只能发布public scope npm包,需要带上access
参数来发布
-
$ cd $yyy
-
$ npm publish --access=public
-
复制代码
到这里应该你已经可以发布@xxx类型的npm包了,更多的用法和使用需要自己折腾了