npm发布包详细流程+常见错误


前言:npm官方建议规范的包 至少包含:

  • package.json(包的基本信息)
  • README.md(文档)
  • index.js (入口文件)

创建目录

  1. 电脑上首先要下载node.js,如果没有就先下一个
  2. npm官网上注册一个账号,需要记住用户名,密码和邮箱
image-20210603112627284
  1. 创建一个新目录并使用npm init初始化

    mkdir csu-xzy
    cd csu-xzy
    npm init
    

    按照提示一步步完善即可,也可使用npm init -y使用npm默认设置,稍后再通过编辑package.json修正。

编写内容

  1. 完成之后,目录里面会多一个package.json的文件,由于我们配置的入口文件是ubdex.js,所以我们在根目录下创建一个index.js文件,编写内容如下
function printUserInfo(name, age) {
  return `your name is ${name} and your age is ${age}`
}

function makeIterator(array) {
  let index = 0;
  return {
      next : function () {
          return index < array.length ?
              {value: array[index++], done: false} :
              {value: undefined, done: true};
      }
  }
}

export {printUserInfo, makeIterator}
  1. 创建一个readme.md文件,内容随便
### csuxzy

This is my first npm package!

It is just for learning.
  1. 最终生成的目录文件为
└── csu-xzy
    ├── README.md
    ├── index.js
    └── package.json

发布:

npm publish

可能报的错:

(1)未登录

npm ERR! code ENEEDAUTH
npm ERR! need auth auth required for publishing
npm ERR! need auth You need to authorize this machine using npm adduser

解决办法:npm adduser
输入:

  • 用户名(忘记的话,去npm网站查看:头像 > Profile Settings)
  • 密码
  • 邮箱
(2)仓库地址不对

npm ERR! code E409
npm ERR! Registry returned 409 for PUT on http://r.cnpmjs.org/-/user/or…:yuyy: conflict

原因:通过nrm ls 命令查看此时的仓库地址为cnpm,而不是npm

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LOROf0xK-1624000972076)(https://segmentfault.com/img/bVblqB5?w=323&h=147)]

解决办法:用nrm切换到npm仓库,执行命令nrm use npm

(3)电脑环境问题

image-20210603113725441

使用nrm的时候报错,更具提示将cli.js低十七行删了或者换成

const NRMRC = path.join(process.env[(process.platform == 'win32') ? 'USERPROFILE' : 'HOME'], '.nrmrc')
(4)403错误

image-20210603234708121

这个错误表示这个包已经被别人创建过了,如果要使用需要更改包名。或者是你没有验证邮箱(大部分是这个问题),解决这两个问题之后就可以正常的发布包了

成功发布

以上问题解决后再次执行发布命令npm publish,发布成功

image-20210604001653974

去npm 官网搜索

image-20210618151759543

有可能有延迟,不能立马看不到。

使用

等待官网可以搜索到了我们就可以像使用其它包一样来使用我们这个包了,只用在项目里npm install csu-xzy,然后在需要的文件中引入这个模块就可以正常使用了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值