写点什么

发布自己的第一个 npm 包

  • 2022-11-01
    广东
  • 本文字数:1408 字

    阅读完需:约 5 分钟

发布自己的第一个npm包

前言

前端模块化作为前端必备的一个技能,已经在前端开发中不可或缺;而模块化带来项目的规模不断变大,项目的依赖越来越多;随着项目的增多,如果每个模块都通过手动拷贝的方式无异于饮鸩止渴,我们可以把功能相似的模块或组件抽取到一个 npm 包中;然后上传到私有 npm 服务器,不断迭代 npm 包来更新管理所有项目的依赖

那么,如何发布属于自己的第一个 npm 包呢?

1.初始化包的基本结构

新建一个文件夹,在这个文件夹中新建三个文件


新建package.json文件,index.js文件和README.md文件,其中,package.json是包的管理配置文件,index.js文件是包的入口文件,README.md是包的说明文档


2.初始化 package.json

初始化一个 json 的配置对象,对象里会包含 6 个属性

  1. name 是配置对象里最重要的一个属性,代表这个包的名称,在 npm 服务器上包的名字不能重复,所以上传前先去官网上搜索一下包名有没有被占用了

  2. version 表示包的版本号,一般默认从 1.0.0 开始

  3. main 指定包的入口文件,就是新创建的 index.js 文件

  4. description 包的描述信息

  5. keywords 搜索的关键字,数组里的每一个属性都是一个字符串,自定义关键字

  6. license 包遵循的开源协议,npm 默认遵循 ISC 协议


{  "name":"zgw-tools",  "version": "1.0.0",  "main": "index.js",  "description": "提供了格式化时间的功能",  "keywords": ['dateFormat','formarTime','aaaaa'],  "license": "ISC"}
复制代码

3.定义格式化时间的方法

在文件夹中新建一个 src 文件夹,里面创建一个 dateFormat.js 文件



在里面定义一个格式化时间的方法


//定义格式化时间的方法,将格式化时间的方法暴露出去function dateFormat(dataStr){  const dt=new Date(dataStr)
const y=dt.getFullYear() const m=(dt.getMonth()+1+'').padStart(2,'0') const d=(dt.getDate()+'').padStart(2,'0')
const hh=(dt.getHours()+'').padStart(2,'0') const mm=(dt.getMinutes()+'').padStart(2,'0 const ss=(dt.getSeconds()+'').padStart(2,'0')
return `${y}-${m}-${d} ${hh}:${mm}:${ss}`}
module.exports={ dateFormat}
复制代码


在 index.js 文件里导入模块,再把对应的方法共享出去


const date=require('./src/dateFormat')module.exports={  ...date}
复制代码

4.README.md 文件编写包的说明文档

## 安装npm install zgw-tools ## 导入const ztest=require('zgw-tools')
## 格式化时间//调用dateFormat 对时间进行格式化const dtstr=dt.dateFormat(new Date())// 结果 2022-08-01 16:16:00console.log(dtstr)
## 开源协议ISC
复制代码

5.发布包

发布之前首先访问https://www.npmjs.com/官网首页注册一个账号,注册完成之后终端运行npm login命令,依次输入账号,密码,登陆邮箱即可登录成功,


注意:若配置了其他的下载源,运行npm login命令之前将下载源换回官方源,否则会导致发布失败,nrm ls查看当前下载源


运行npm publish命令,即可将包发布到 npm 上


发布完成之后可以点击头像,点击 Packages 查看自己发布的包




最后,将自己发布的包根据说明文档下载下来使用


//导入自己上传到npm的包const z=require('zgw-tools')
// 调用方法,传入当前时间的时间戳const dt=z.dateFormat(1664717540000)// 打印结果2022-10-02 21:32:20console.log(dt)
复制代码

那么如何删除自己发布的包呢?

运行 npm unpublish 包名 --force命令即可删除发布的包,但是 npm unpublish 只能删除 72 小时内发布的包,删除后的包 24 小时内不允许重复发布,所以尽量不要往 npm 上发布没有意义的包

发布于: 刚刚阅读数: 3
用户头像

还未添加个人签名 2022-11-01 加入

还未添加个人简介

评论

发布
暂无评论
发布自己的第一个npm包_npm_格斗家不爱在外太空沉思_InfoQ写作社区