发布npm的scope包

前言

最近新装了vue-cli3,发现node_modules里面的包变成了@vue/cli-xxx,@vue下面包含了好几个文件夹,这个@是什么意思?查了下npm官网上是这么描述的vue

All npm packages have a name. Some package names also have a scope. A scope follows the usual rules for package names (URL-safe characters, no leading dots or underscores). When used in package names, scopes are preceded by an @ symbol and followed by a slash, e.g.node

就是说scope至关于npm包的命名空间,若是以@开头,那它就是一个scope package。
这样分类以后就会使结构更加清晰,好比@vue下面的包都是vue用的,至关于给包作了一个分类。vue-cli

npm发布包

非scope的包

  1. 先把registry指向npmjs
npm config set registry https://registry.npmjs.org/
  1. 登陆npm(若是没有帐号须要先注册),输入用户名,密码和邮箱
npm login
  1. 而后在要发布的根目录下
npm publish

scope的包

1,2步骤和前面同样,第三步的时候,若是是npm publish,会出现403,以下npm

clipboard.png

看了官网的说明,说是要在publish的时候加--access public
运行网站

npm publish --access public

没想到报错了!!!ui

clipboard.png

为何找不到呢,再次看下npm的官网,发现下面的描述
Each npm user/organization has their own scope, and only you can add packages in your scope. This means you don’t have to worry about someone taking your package name ahead of you. Thus it is also a good way to signal official packages for organizations.
意思就是每一个npm包要有个organization做为他们的命名空间,这样才能往里面加packagespa

organization??这是哪里建立的?登陆npm的网站上,还真的看到了organization!!命令行

clipboard.png
在这里新建一个kaisaui,看到了私有的是要收费的,公有的是免费的,固然坚决果断地就建立了公有的~~~code

回到以前的命令行,从新执行npmip

npm publish --access public

发布成功~~~
撒花~~~

由于我发布的包还会关联scope的包,把scope的包放在dependencies里就能够了,千万不要放在devDependencies,由于这个是开发用的,npm install的时候是不会装这里的包的!!

相关文章
相关标签/搜索