發佈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的時候是不會裝這裏的包的!!

相關文章
相關標籤/搜索