使用范围包(Working with scoped packages)

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信息。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 描述 npm从以下来源获取配置值,按优先级排序: 命令行标记 在命令行上放置--foo bar设置foo配置参数为...
    竹天亮阅读 44,295评论 0 8
  • { "Unterminated string literal.": "未终止的字符串文本。", "Identifi...
    一粒沙随风飘摇阅读 10,897评论 0 3
  • 我们通常通过 npm 来安装和使用开源的模块。但是,通常我们有些私有的模块,不想通过npm发布,但是又想在一些项目...
    wavesnow阅读 3,642评论 1 5
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,269评论 19 139
  • npm是什么 NPM的全称是Node Package Manager,是随同NodeJS一起安装的包管理和分发工具...
    build1024阅读 8,029评论 0 9