最近新裝了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的時候是不會裝這裏的包的!!