把自己的代码发布到npm(npm publish)

时间:2024-03-03 09:54:27

 

写了代码如何发布到npm包?

示例

demo1

demo2

1.注册npm账号

在npm官网注册https://www.npmjs.com/
注意邮箱要验证,会发送验证链接到你的注册邮箱,没有验证的话是不能发布代码的

2.给你的代码库起个名字

名字不能重复,在官网查询下是不是重复,重复的包名不能提交

3.创建项目

需要一个package.json文件,这个文件不仅仅是用来标明依赖和npm script脚本,也可以是一个npm包被外界识别的配置文件。
因为配置文件内容比较多,可以选择自己手写,或者

npm init

根据提示写好你的信息,以我的为例:name包名和main/bin对应你的包的入口文件,这里我的代码和github一起管理,author注意不要写错和你的npm账号一致

{
"name": "calamus-vue-music",
"version": "0.0.2",
"description": "a vue music player",
"main": "music.vue",
"bin": "music.vue",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "git+https://github.com/calamus0427/calamus-vue-music.git"
},
"keywords": [
"music",
"player",
"vue",
"calamus"
],
"author": "calamus",
"license": "MIT",
"bugs": {
"url": "https://github.com/calamus0427/calamus-vue-music/issues"
},
"homepage": "https://github.com/calamus0427/calamus-vue-music#readme",
"_from": "calamus-vue-music@0.0.1"
}

4.本地测试

npm pack

会生成一个 tgz版本文件
打开一个新的项目,路径为刚刚生成的路径

npm install 路径/文件-1.0.0.tgz

5.提交发布

先登录你的账号


$ npm adduser    Username: your name Password: your password Email: yourmail

按照你注册的账号配置好,这时候看一下package.json中author尽量与npm账户一致。
在根目录下配置账号信息,只用配置一次即可,我上传的时候发现有提示必须admin权限才能上传问题就是没在根目录下配置信息
检查是否登录成功

npm who am i
# 如果不成功则重新登录一下
npm login

配置成功之后提交代码

npm publish

如果提交成功会出现如下提示:

注意每次提交版本号都要比上次的高

5.测试是否提交成功

去官网你的账号下面看一下有没有
或者直接npm下载下来

npm install calamus-vue-music --save

一些常见的错误:

  • 1.no_perms Private mode enable, only admin can publish this module

这是因为镜像设置成淘宝镜像了,设置回来即可


npm config set registry http://registry.npmjs.org
  • 2.npm publish failed put 500 unexpected status code 401
    一般是没有登录,重新登录一下 npm login 即可

  • 3.npm ERR! you do not have permission to publish “your module name”. Are you logged in as the correct user?
    包名被占用,改个包名即可。最好在官网查一下是否有包名被占用,之后再重命名

  • 4.you must verify your email before publishing a new package
    邮箱未验证,去官网验证一下邮箱