Scopes将相当于npm模块的命名空间。如果包名以@开始,那他就是一个scoped package。scope是介于@和slash之间的
@scope/project-name
每个npm用户由他自己的scope.
@username/project-name
可以在CLI documentation里找到更多关于scopes的信息
更新npm和log in
版本应该大于2.7.0,并且如果是第一次在命令行里使用scopes modules需要再次log in 到npm.
sudo npm install -g npm
npm login
初始化scoped package
为了创建scoped package, 简单的使用package名开始scope
{
"name":"@username/project-name"
}
如果使用npm init
,可以使用命令行添加scope:
npm init --scope=username
如果一直使用相同的scope,可能需要在.npmrc
文件里设置
npm config set scope username
发布scoped package
Scoped packages默认是私有的。为了发布私有的模块,应该付费成为private modules
用户。
但是,public scoped模块是免费的不需要支付.发布公开的scoped模块,在发布时设置访问选项。这个选项会为所有的后面发布保存设置
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信息。