最近新装了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 config set registry https://registry.npmjs.org/
npm login
npm publish
1,2步骤和前面同样,第三步的时候,若是是npm publish,会出现403,以下npm
看了官网的说明,说是要在publish的时候加--access public
运行网站
npm publish --access public
没想到报错了!!!ui
为何找不到呢,再次看下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!!命令行
在这里新建一个kaisaui,看到了私有的是要收费的,公有的是免费的,固然坚决果断地就建立了公有的~~~code
回到以前的命令行,从新执行npmip
npm publish --access public
发布成功~~~
撒花~~~
由于我发布的包还会关联scope的包,把scope的包放在dependencies里就能够了,千万不要放在devDependencies,由于这个是开发用的,npm install的时候是不会装这里的包的!!