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 []
用于设置软件包的访问控制–只能对组织的包有效。
access的作用主要就是4个:
将软件包设置为可公开访问或受限, 此次命令只适用于范围包,对于普通使用会报错,如下:
添加或删除用户和团队对程序包具有只读或读写权限。这个命令只是给团队使用的
配置程序包是否要求 发布该程序的任何人都对账户启用双重身份验证。
显示用户或团队可以访问的所有软件包以及访问级别,只读公开软件包外(它不会显示整个注册表列表)
显示软件包的所有访问权限。仅显示您至少具有读取权限的软件包的权限。如果传入user传入,列表用你给的user作为过滤条件
使用一次设置软件包的访问权限$EDITOR
npm access 始终直接在当前注册表上运行,可以使用从命令行配置 --registry=
但你可以在初始发布后将npm publish --access=public 公开发布使用。
也可以将其设置为公开使用npm access public。
您必须具有特权才能设置程序包的访问权限;
- 您是包的所有者
- 您是包所属团队的程成员
- 你已经获得了包的读写权限,作为团队成员或直接拥有者多得身份。
如果启用了双重验证,在 进行更改权限时必须以–opt传递opt。
如果您的账户未授权,你只能使用它;加入你尝试发布这个包的时候回失败,并显示HTTP 402状态代码,除非你使用–access=public.
管理团队和团队成员可以通npm team命令来完成。
以上是到处都可以搜到文档。但是看了任然有点不清不楚。所以,实践出真知。
由于该该命令是设置权限相关的,而普通的程序版都是公开的,无法设置权限,所以要先准备一个npm 的组织,可以在https://www.npmjs.com/org/create创建,我创建了一个将yyds123的组织,创建完组织之后默认会有一个develops的团队。我再创建了一个test的团队。如下图:
通过npm init --scope=@yyds123的方式初始化一个组织下的程序包,如下:
我们将其npm publis发布到组织上,npm publish。如下图:
注意:npm publish默认是已私有的方式发布,然尔私有包时要收费的,所以我们发布的时候要添加公开发布的参数,如下: npm publish --access public
我们在两个组织分别查看一下程序包的情况,只在developers下看到了程序包,而test组织下没有看到程序包,如下:
在组织中发布包,默认的访问权限应该是develops组织。如果需要设置程序包的权限等,可以通过npm access grant 和 npm access revoke 两个命令给团队设置权限。
我们给test团队添加@yyds123/npm-cli-demo包的读写权限:
npm access grant read-write yyds123:test @yyds123/npm-cli-demo
我们再把develops下面的程序包权限去掉:
npm access revoke yyds123:developers @yyds123/npm-cli-demo
该指令可以将npm设置为受限,但是由于我们没有付费,无法测试,就略过了
该程序包就是public的方式方式发布的,可以直接在npm搜索到我们发布的程序包
该指令用于设置二次鉴权相关的内容,设置的是下图的选项:
这里的设置项有三种:
要设置二次验证比较麻烦,可以看https://www.npmjs.cn/getting-started/using-two-factor-authentication/
这里需要提前准备一个可以生成一次性密码或otp的应用程序。例如,authy或google authenticator,然后关联上npm。大概就可以做到,发布之前需要验证token之类的。
这里没有再研究下去了。如果有朋友有研究可以评论告诉一下我哦