使用token发布npm包

使用场景

在CI/CD自动化发布npm场景中,网上大部分文章采用的是npm cli命令方式输入账号密码,或者在.npmrc内置好账号密码,然后执行npm publish。这种方法可行, 但是不太安全,存在泄露账号的风险。所以本文讲述的是如何通过token这种安全的方式实现发包。

配置步骤

  1. 打开npm官网进行登录,进入你所要发布的那个包的详情界面,打开包的settings设置界面(需要再次输入密码),选择Require two-factor authentication or automation tokens,然后点击update package settings按钮保存设置

2.此时系统会询问是否要开启2FA(Two Factor Authentication)登录(已经开启2FA的用户不会出现这个界面),同意开启,2FA模式选择Authorization,然后点击提交

3.此时,界面会提示你,需要手机扫码,然后在输入框输入OTP码。我们可以在手机上下载authenticator这个app,然后用这个app进行扫码,之后app会生成一个OTP码。把这个码输入到刚才界面上的输入框里,再点击提交按钮开启2FA功能(开启成功后界面会出现几行字符串让你手动保存,这里就不截图了)。

4.接下来,在npm官网右上角点击自己的用户头像,选择Access Tokens,再点击Generate New Token按钮生成token(需要再次输入密码)。 然后创建Automation类型的token,token名称随意写,点击生成token。界面会返回一个token给你,记得手动保存一下token(因为离开界面后就再也看不到完整的token,需要重新生成)

5.完成上述步骤后,打开我们要发的包的代码库,在项目根目录创建.npmrc文件,写入以下代码:

registry=https://registry.npmjs.org/
//registry.npmjs.org/:always-auth=true
//registry.npmjs.org/:_authToken=xxxx // xxxx代表刚才我们生成的token

6.至此我们已完成了使用token发包的所有步骤。使用npm logout退出登录测试一下发布,然后输入npm publish,此时无需登录账号密码也能发布npm包(还省去了输入OTP码的麻烦)。以后发布包时只需要npm publish一条命令即可

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
npm error Unexpected token '.'是由于npm在执行命令时遇到了一个意外的字符'.'而导致的错误。 这个错误可能是由于你的node版本不兼容或者安装的npm有问题所致。为了解决这个问题,你可以尝试以下几个步骤: 1. 确保你的node版本是最新的,并且安装了最新的npm。你可以使用node版本管理器(如nvm)来升级或切换到最新的node版本。如果你没有使用版本管理器,可以尝试将node卸载后重新安装。 2. 检查你的代码中是否存在语法错误或非法字符。请检查你的代码中是否有意外的'.'字符,尤其是在JSON解析中,因为这可能会导致错误。你可以使用isJson函数来判断字符串是否是合法的JSON格式,并进行相应的处理。 3. 检查你安装的npm是否有问题。有时候,一个有问题的npm可能会导致这个错误。你可以尝试更新或重新安装相关的npm,或者查找替代的来解决问题。 总的来说,npm error Unexpected token '.'是由于npm在执行命令时遇到了一个意外的字符'.'而导致的错误。你可以尝试升级node版本,检查代码中的语法错误和非法字符,并检查安装的npm是否有问题来解决这个问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [npm ERR! Unexpected token ‘.‘ 报错解决办法](https://blog.csdn.net/weixin_39786582/article/details/128669914)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [Unexpected token c in JSON at position 0 报错信息及解决](https://download.csdn.net/download/weixin_38667697/14887988)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值