如何开发创建自己的npm包并成功发布、维护至npm官方网站

npm,全称为Node Package Manager,是专为JavaScript生态系统设计的软件包管理系统,尤其与Node.js平台紧密关联。作为Node.js的默认包管理工具,npm为开发者提供了便捷的方式来安装、共享、分发和管理代码模块。

npm作为JavaScript世界不可或缺的基础设施,极大地促进了代码复用和协作。创建自己的npm包并成功发布、维护至npm官方网站,可以连接全球范围内的开发者、包作者与使用者,共同推动着Node.js生态的繁荣与发展。

一、npm init

使用npm init生成package.json

复制代码
{
  "name": "whale-makelink",
  "version": "1.0.5",
  "description": "Make-link can get all the project folders of the current directory, and generate the project link directory in the readme.",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "repository": {
    "type": "git",
    "url": "git@github.com:jingwhale/whale-makelink.git"
  },
  "keywords": [
    "makelink"
  ],
  "author": "jingwhale@yeah.net",
  "license": "ISC"
}

二、自定义命令

2.1、在package.json的bin下定义一个对象,这里makelink就是需要的命令,内容交给index.js

复制代码
{
  "name": "whale-makelink",
  "version": "1.0.5",
  "description": "Make-link can get all the project folders of the current directory, and generate the project link directory in the readme.",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "repository": {
    "type": "git",
    "url": "git@github.com:jingwhale/whale-makelink.git"
  },
  "bin": {
    "makelink": "./index.js"
  },
  "keywords": [
    "makelink"
  ],
  "author": "jingwhale@yeah.net",
  "license": "ISC"
}

2.2、在index.js中添加'#!/usr/bin/env node'

复制代码
#!/usr/bin/env node

const path = require('path');
const makelink = require('./makelink');

const pathName = path.resolve(__dirname, '../..');
const srcFile = pathName + '/README.md';

makelink(srcFile,pathName);

三、发布npm包

3.1、注册

npm官网注册,并且通过邮件验证后,才能发npm包。

3.2、登录

复制代码
npm login

输入用户名、密码和邮箱。

3.3、发布

复制代码
npm publish

3.4、版本更新

1)、变更版本号-自动改变版本

复制代码
npm version <update_type>

update_type为patch, minor, or major其中之一,分别表示补丁,小改,大改

复制代码
若是patch,变为1.0.1
若是minor,变为1.1.0
若是major,变为2.0.0

2)、发布

复制代码
npm publish

3.5、发布出错

1)、验证邮箱

2)、修正npm源

复制代码
npm config get registry
npm config set registry=http://registry.npmjs.org

四、更新package.json

更新package.json后,需要先提交到github,再进行版本的升级。

五、版本展示

创建

readme中使用

复制代码
![verion](https://img.shields.io/badge/npm-1.0.8-brightgreen.svg)

策略

每次代码更新完毕,在进行版本的升级操作。

六、npm whale-makelink

相关推荐
RuoyiOffice9 分钟前
SpringBoot+Vue3 企业假期余额系统设计:账户、流水、预占、销假退回与到期清零全链路拆解
spring boot·后端·spring·vue·hr·企业管理软件·ruoyioffice
Carson带你学Android19 分钟前
别再乱学了!深度解读 Google 官方发布 Android 6 大核心 Skills
android·前端·ai编程
张风捷特烈22 分钟前
状态管理大乱斗#06 | Riverpod 源码评析 (下) - 外功心法
android·前端·flutter
ZC跨境爬虫28 分钟前
跟着 MDN 学 HTML day_16:(音频与视频处理——从画布滤镜到3D沉浸音频的进阶指南)
前端·javascript·ui·3d·html·音视频
潘祖记30 分钟前
# 一行命令让 AI 接管全屋智能:FeyaGate Skill 保姆级接入教程,小米/涂鸦/美的/易微联全搞定
人工智能·后端·asp.net
魔术师Grace36 分钟前
普通人学 AI,不要一上来就学提示词
前端·人工智能·程序员
m0_7381207239 分钟前
Webshell流量分析——常见扫描器AWVS,goby,xray流量特征分析
服务器·前端·安全·web安全·网络安全
三少爷的鞋41 分钟前
Kotlin 协程 vs Java 虚拟线程:两种并发模型的对比
android
神奇的程序员9 小时前
开发了一个管理本地开发环境的软件
前端·flutter
白云LDC10 小时前
Android Studio新建Vecter asset一直显示Loading icons(转圈圈)的解决办法
android·ide·android studio