npm access详解

npm access使用

npm access public []
npm access restricted []
npm access grant   []
npm access revoke  []
npm access 2fa-required []
npm access 2fa-not-required []
npm access ls-packages [||]
npm access ls-collaborators [ []]
npm access edit []

npm access参数说明

用于设置软件包的访问控制–只能对组织的包有效
access的作用主要就是4个:

  • 无非就是设置组织的包是否可以让外部人员看到
  • 给某人或组织内的团队添加某个包的读写权限
  • 发布包的时候设置二次校验
  • edit临时编辑权限
    对于所有子命令,npm access 如果没有将软件包名称传递给子命令,它将对当前工作目录中的软件包执行操作。

public/ restricted

将软件包设置为可公开访问或受限, 此次命令只适用于范围包,对于普通使用会报错,如下:
npm access详解_第1张图片

grant /revoke

添加或删除用户和团队对程序包具有只读或读写权限。这个命令只是给团队使用的

2fa-required / 2fa-not-required

配置程序包是否要求 发布该程序的任何人都对账户启用双重身份验证。

ls-packages

显示用户或团队可以访问的所有软件包以及访问级别,只读公开软件包外(它不会显示整个注册表列表)

ls-collaborators

显示软件包的所有访问权限。仅显示您至少具有读取权限的软件包的权限。如果传入user传入,列表用你给的user作为过滤条件

edit

使用一次设置软件包的访问权限$EDITOR

npm access详细说明

npm access 始终直接在当前注册表上运行,可以使用从命令行配置 --registry=

  • 无作用域的软件包始终是公开的。
  • 有作用的程序包默认为stricted(受限制的)

但你可以在初始发布后将npm publish --access=public 公开发布使用。

也可以将其设置为公开使用npm access public。

您必须具有特权才能设置程序包的访问权限;
- 您是包的所有者
- 您是包所属团队的程成员
- 你已经获得了包的读写权限,作为团队成员或直接拥有者多得身份。

如果启用了双重验证,在 进行更改权限时必须以–opt传递opt。

如果您的账户未授权,你只能使用它;加入你尝试发布这个包的时候回失败,并显示HTTP 402状态代码,除非你使用–access=public.

管理团队和团队成员可以通npm team命令来完成。

以上是到处都可以搜到文档。但是看了任然有点不清不楚。所以,实践出真知。

我们来实践一下

前提准备

1. 准备组织和团队

由于该该命令是设置权限相关的,而普通的程序版都是公开的,无法设置权限,所以要先准备一个npm 的组织,可以在https://www.npmjs.com/org/create创建,我创建了一个将yyds123的组织,创建完组织之后默认会有一个develops的团队。我再创建了一个test的团队。如下图:
npm access详解_第2张图片

2.准备一个程序包,并将其发布到组织下

通过npm init --scope=@yyds123的方式初始化一个组织下的程序包,如下:
npm access详解_第3张图片
我们将其npm publis发布到组织上,npm publish。如下图:
npm access详解_第4张图片
注意:npm publish默认是已私有的方式发布,然尔私有包时要收费的,所以我们发布的时候要添加公开发布的参数,如下: npm publish --access public

我们在两个组织分别查看一下程序包的情况,只在developers下看到了程序包,而test组织下没有看到程序包,如下:

npm access详解_第5张图片

npm access详解_第6张图片

在组织中发布包,默认的访问权限应该是develops组织。如果需要设置程序包的权限等,可以通过npm access grant 和 npm access revoke 两个命令给团队设置权限。

npm access grant

我们给test团队添加@yyds123/npm-cli-demo包的读写权限:

npm access grant read-write yyds123:test @yyds123/npm-cli-demo

可以看到test组织下就有了程序包:
npm access详解_第7张图片

npm access revoke

我们再把develops下面的程序包权限去掉:

npm access revoke yyds123:developers @yyds123/npm-cli-demo

如下图:
npm access详解_第8张图片

npm access restricted设置为受限

该指令可以将npm设置为受限,但是由于我们没有付费,无法测试,就略过了

npm access public

该程序包就是public的方式方式发布的,可以直接在npm搜索到我们发布的程序包

npm access 2fa-required

该指令用于设置二次鉴权相关的内容,设置的是下图的选项:
npm access详解_第9张图片
这里的设置项有三种:

  1. 不需要二次验证
  2. 需要二次验证或者token验证
  3. 在发布时需要二次验证

要设置二次验证比较麻烦,可以看https://www.npmjs.cn/getting-started/using-two-factor-authentication/

这里需要提前准备一个可以生成一次性密码或otp的应用程序。例如,authy或google authenticator,然后关联上npm。大概就可以做到,发布之前需要验证token之类的。

这里没有再研究下去了。如果有朋友有研究可以评论告诉一下我哦

你可能感兴趣的:(npm,access)