scope类似于npm模块中的命名空间。如果一个包的名字以@开头,那么这个包就是一个scope包。scope可以是任何字符在@和斜线间。
@scope/project-name
每个用户都有他们自己域:
@username/projet-name
你可以在CLI文档中找到更多关于域的信息。
npm的版本需要高于2.7.0,并且如果是你第一次使用域模块的话,那么你就还需要再登录一次。
sudo npm install -g npm
npm login
要创建一个域包,你只需要简单地使用一个包名,这个包名以你的域名为前缀。
{
"name": "@username/project-name"
}
如果你使用的是npm init,那么你可以在参数中指明创建的是域包:
npm init --scope=username
如果你一直都使用某个域,那么你可以在.npmrc文件中配置:
npm config set scope username
域包默认是私有的。想要发布一个私有的模块,你需要成为一个付费的私有模块用户。
然而,公有的域包还是免费的并且是不要求付任何费用的。要发布一个公有的域包,需要再发布的时候设置访问参数便可。这个参数设置之后之后的发布都会沿用这个设置的:
npm publish --access=public
要使用一个域包,你只需要简单地在使用包名的时候加上域名便可。
在package.json中:
{
"dependencies": {
"@username/project-name": "^1.0.0"
}
}
在命令行中:
npm install @username/project-name --save
在require语句中:
var projectName = require("@username/project-name")
更多关于私有域包,请查看XXX;