npm 上传自己的包

  1. mkdir demo 创建一个新的文件夹

  1. npm init 初始化项目 生成一个package.json文件 name version description等等

  1. touch index.js 创建一个node 可执行脚本新的js 文件

#!/usr/bin/env node
// 必须在文件头加如上内容指定运行环境为node
console.log('hello cli')
  1. 在package.json 中 添加bin 属性 , (当后续去安装该依赖时,npm install 会根据该属性在node_modules/.bin 文件下 生成可执行脚本 ,该脚本执行index.js)

"bin": {
  "demoBin": "index.js" // 该index.js 就是上述新创建的可执行脚本
}
  1. 如果想直接使用命令 demoBin 去执行index.js , 使用npm link 会在全局(C:\Program Files\nodejs\node_global, 该地址被添加到了环境变量中)生成可执行文件 demoBin

  1. 此时在命令工具中 输入 demoBin 就会去执行index.js

  1. 创建一个npm 账号: https://www.npmjs.com

  1. 在命令工具中 输入npm login , 会显示输入账号、密码、邮箱

输入完毕之后报错:

npm ERR! code E403
npm ERR! 403 403 Forbidden - PUT https://registry.npmmirror.com/-/user/org.couchdb.user:yimihuakai111 - [FORBIDDEN] Public registration is not allowed
npm ERR! 403 In most cases, you or one of your dependencies are requesting
npm ERR! 403 a package version that is forbidden by your security policy, or
npm ERR! 403 on a server you do not have access to.

可以看下命令工具中会发现显示的是 npm notice Log in on https://registry.npm.taobao.org/ (最新的淘宝镜像地址应该是 https://registry.npmmirror.com/

npm config get registry 会发现此时我们的源是淘宝地址,淘宝地址只提供下载,不能进行发布

我们需要切换到自己的私有源或者npm 官方地址, 我这以npm 官方地址为例,

npm config set registry https://registry.npmjs.org

切换成功后此时再去登录,

登录成功之后, 发布我们的包 npm publish

报错:

npm ERR! code E403
npm ERR! 403 403 Forbidden - PUT https://registry.npmjs.org/demo - You do not have permission to publish "wendy-cli". Are you logged in as the correct user?
npm ERR! 403 In most cases, you or one of your dependencies are requesting
npm ERR! 403 a package version that is forbidden by your security policy, or
npm ERR! 403 on a server you do not have access to.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\Administrator\AppData\Local\npm-cache\_logs\2023-02-21T02_58_24_736Z-debug-0.log

这个一般是包名冲突问题, 我们需要在package.json 修改包名 name

修改为yimidemo, 再重新publish

显示 npm notice Publishing to https://registry.npmjs.org/ 就是发布成功了

我们去刚才的账号npm 下去看 就会有该库了 包名就是package.json name 属性对应的值

注意: 发布包的时候 像node_modules 这种我们肯定不需要一起发布上去,可以在.gitignore 设置忽略哪些文件(可以自己去搜搜)

拓展: 使用nrm 管理和切换镜像地址(包括查看当前源 add use del login publish 等等可以查看--help 来查看所有命令)

  1. 上述的手动切换 npm config set registry xxxx

  1. 使用nrm 管理

npm install -g nrm 全局安装nrm
nrm use npm (发布包的时候 切换到npm 镜像地址)
nrm use taobao (发布之后 切换到淘宝镜像)
  1. nrm 其他常用命令 nrm ls(所有源列表) ; nrm add <别名> <源url>; nrm del <别名>

  1. 使用的话 就和 其他包一样 npm install xxx 可以安装全局/局部 像脚手架这种一般都是安装到全部

下次 再写怎么自定义自己的脚手架

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值