发布自己的npm包


发布属于自己的npm包

1. 创建npm账号

想要发布npm包,首先肯定要有自己的npm账号,npm官网,注册过程不多赘述,自己去注册即可

2. 创建项目

新建一个项目(默认了你已经安装的node),名字自己可以随便定义,我这里以my-npm-package为例,进入项目开始操作

npm init

提示输入npm包的名字,以及描述,作者等信息,按照提示输入,,最后输入y即可,也可以一直回车空着先初始化完成之后在填写,我这里建议一直回车后面在修改更改直观到此初始化完成,然后看文件夹中生成了一个package.json文件,这个里面保存了包的各种配置信息。

看一下package.json文件

{
	"name": "zhj.js",	// 包的名字
	"version": "1.0.1",	// 包的版本号
	"description": "zhj的个人公用js",	// 包的描述
	"main": "index.js",	//主入口文件,默认值是模块根目录下面的 index.js
	"repository": {	// 存储仓库类型
		"type": "git",
		"url": "git+https://github.com/Chulushan/zhj.js"
	},
	"keywords": [	// 在npm社区的搜索关键字
		"zhj"
	],
	"author": "zhj",	// 作者
	"license": "ISC",	//使用ISC作为许可证
	"bugs": {
		"url": "https://github.com/Chulushan/zhj.js/issues"	// 提issues地址
	},
	"homepage": "https://github.com/Chulushan/zhj.js"	// 包主页
}

新建入口文件index.js以及readme.md文件

这里根据自己的需要编写自己的包内容,以及md说明,这里我稍微展示一下自己的包内容,我的包导出了各种我自己常用的方法

/**
* 数组或数组对象去重
* @param {array} val1 需要去重的数组
* @param {string} val2 唯一标识字段
* @returns {array} 返回去重之后的数组
*/
export function distinctArr(val1, val2) {...}

PS:这里方法最好使用这种写法,这样在引入的时候,用户将鼠标放到方法名上,可以很方便的知道这个方法是做什么用的,以及参数是什么,返回值是什么。😎😎😎

最终我的包目录结构是这样的(一个文件夹里面三个文件)

  • my-npm-package
    • index.js (入口文件)
    • readme.md (说明文件)
    • package.json (包配置文件)

上传到git

包发布之前需要将内容上传到git仓库,就是需要确保git上面有你配置文件里的仓库地址

注意事项

  • 包的命名规则
    • 包名长度不能超过 214 个字符(命名空间也算在里面)
    • 包名必须是小写字母,不能包含空格,不能以.或-开头(中间可以有)
    • 包名不能使用node的保留关键字,如http等
    • 包名不能以node的模块名开头,比如fs、path
    • 包名不能包含node_modules
    • 包名如果以@开头,默认会识别为私有包,需要收费(一般格式为@name/baoming),也可在发布的时候特别注明是公有包,或者在配置文件中添加配置,详情点击这里查看
  • 包的入口文件
    • 包的入口文件默认为根目录下的index.js,也可自定义

3. 发布

发布之前需要登录自己的npm账号

npm login

根据提示自己填写,账号密码邮箱啥的,有时候可能需要填写验证码,去自己绑定的邮箱查看,登录成功会提示:Logged in as yourName on https://registry.npmjs.org/,此时就登录成功了,这个时候我们就可以发布了。

npm version 1.0.1

发布的版本号,第一次发布不需要这个,默认是1.0.0版本,之后每次更新根据下面的规则,先确定版本在发布就行

  • 包的版本号规则
    • 版本号格式:主版本号.次版本号.修订号(如:1.2.3这种),版本号只能递增
    • 版本号递增规则:
      • 主版本号:当你做了不兼容的 API 修改,一般都是大的版本迭代比如vue2至vue3这种
      • 次版本号:当你做了向下兼容的功能性新增,新增了一些功能之类的
      • 修订号:当你做了向下兼容的问题修正,未新增只是改了这种

npm publish

发布成功会提示:+ my-npm-package@1.0.1 ,此时就发布成功了,去npm官网查看,发现已经发布了。

发布注意事项

  • 发布之前要确保配置文件中的git仓库是存在的,否则会报错
  • 要确保源地址为官方地址http://registry.npmjs.orghttps://registry.npmjs.com, 可以通过 npm config get registry 命令查看当前 registry 源,如果不是可通过以下四种方式修改
    • 1、在全局配置 .npmrc ,可通过命令 npm config set registry=http://registry.npmjs.org/
    • 2、在当前项目中添加配置文件.npmrc,里面内容为
      registry = http://registry.npmjs.org/
    • 3、发布包时指定 –registry 选项,npm publish —registry=http://registry.npmjs.org/
    • 4、在当前项目的 package.json 中通过 publishConfig 字段指定
      "publishConfig": {
      	"registry": "http://registry.npmjs.org/"
      }
  • 如果想要发布带有命名空间的包,有两种方法
    • 1、发布命令npm publish –access public,指出这是个公有包
    • 2、package的pbulishConfig字段中添加access字段
      "publishConfig": {
      	"access": "public"
      }

4. 我的包地址

我自己的包:点击查看


文章作者: zhj
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 zhj !
评论
  目录