Scopes將相當(dāng)于npm模塊的命名空間。如果包名以@開始嚼贡,那他就是一個(gè)scoped package。scope是介于@和slash之間的
@scope/project-name
每個(gè)npm用戶由他自己的scope.
@username/project-name
可以在CLI documentation里找到更多關(guān)于scopes的信息
更新npm和log in
版本應(yīng)該大于2.7.0,并且如果是第一次在命令行里使用scopes modules需要再次log in 到npm.
sudo npm install -g npm
npm login
初始化scoped package
為了創(chuàng)建scoped package, 簡單的使用package名開始scope
{
"name":"@username/project-name"
}
如果使用npm init
,可以使用命令行添加scope:
npm init --scope=username
如果一直使用相同的scope,可能需要在.npmrc
文件里設(shè)置
npm config set scope username
發(fā)布scoped package
Scoped packages默認(rèn)是私有的同诫。為了發(fā)布私有的模塊粤策,應(yīng)該付費(fèi)成為private modules
用戶。
但是误窖,public scoped模塊是免費(fèi)的不需要支付.發(fā)布公開的scoped模塊叮盘,在發(fā)布時(shí)設(shè)置訪問選項(xiàng)。這個(gè)選項(xiàng)會(huì)為所有的后面發(fā)布保存設(shè)置
npm publish --access=public
使用scoped package
簡單的在你使用的包名里包含scope
在package.json:
{
"dependencies": {
"@username/project-name": "^1.0.0"
}
}
在命令行:
npm install @username/project-name --save
在require語句:
var projectName = require("@username/project-name")
訪問npmjs.com/private-modules獲取更多的scoped private module信息霹俺。