npm包开发与发布

把通用的功能开发成npm包,便用使用和维护,更重要的是可以分享给广大的开发者,是不是很激动人心!

那么,步骤如下:

1.创建项目

创建项目目录,npm init ,根据需要输入配置信息(建完后也可以在package.json中自行修改)

创建完成后项目目录下会有一个package.json文件

配置项

name: 说明了npm包的名称,也就是publish后可以在npmjs中通过该名称搜索到

version:版本号

main:入口文件

2.创建index.js文件,内容如下:

 1 function addZero(num) {
 2   return num > 9 ? num : '0' + num
 3 }
 4 
 5 let formatter = {
 6   date: null,
 7   init(date) {
 8     try {
 9       if (date) {
10         this.date = new Date(date)
11       }
12     } catch (error) {
13       console.info(error)
14     }
15   },
16   getDateTime () {
17     let date = this.date || new Date()
18     let res = ''
19     res = date.getFullYear() + '-' + addZero(date.getMonth() + 1) + '-' +addZero(date.getDate())
20     + ' ' + addZero(date.getHours()) + ':' + addZero(date.getMinutes()) + ':' + addZero(date.getSeconds())
21     return res
22   },
23   getDate () {
24     return this.getDateTime().split(' ')[0]
25   },
26   getTime () {
27     return this.getDateTime().split(' ')[1]
28   }
29 }
30 
31 module.exports = formatter
module.exports = formatter意思是把formatter输出。

3.测试
创建test-formatter.js,导入index并使用其中的方法
1 let formatter = require('./index') // 导入
2 formatter.init('2018-6-9')
3 console.info(formatter.getDateTime())

命令行输入 node test-formatter.js  执行,结果为:

4.测试没有问题,那么需要创建一个ReadMe文件进行说明

主要包含:

介绍,安装方法,github地址,使用示例

 1 # datetime-format-wsy
 2 格式化时间,获取2019-08-07 15:06:32或2019-08-07或15:06:32
 3 
 4 # install
 5 npm install -g datetime-format-wsy
 6 
 7 #github
 8 https://github.com/shiyuan598/FrontEnd/tree/master/npm/datetime-format
 9 
10 #usage
11 let formatter = require('./index')
12 formatter.init('2018-6-9')
13 console.info(formatter.getDateTime())

此时项目的目录结构如下:

5.下面就可以发布了

先要有一个npm账号,,如果没有请到 https://www.npmjs.com 注册

命令行输入:

npm login

根据提示依次输入用户名、密码,登录成功后会显示用户名。

命令行输入:

npm publish

 完成发布。

如果是因为使用了淘宝镜像导致publish不成功,可以按如下步骤操作:

npm i -g nrm

nrm use npm

再次npm publish

6.使用

发布成功后就可以在npmjs中搜索、也可以安装使用了。

在npmjs搜索的结果:

安装:

命令行输入:npm install datetime-format-wsy --s

 

安装完成后项目目录下会增加package-lock.json描述了该包的信息:

 1 {
 2   "name": "datetime-format-wsy2",
 3   "version": "1.0.1",
 4   "lockfileVersion": 1,
 5   "requires": true,
 6   "dependencies": {
 7     "datetime-format-wsy": {
 8       "version": "1.0.1",
 9       "resolved": "https://registry.npmjs.org/datetime-format-wsy/-/datetime-format-wsy-1.0.1.tgz",
10       "integrity": "sha512-klyoj8r2KbOqN9zngjplMr+EWU+cGqa1KgzNn+TUtEpzvYqmnJvj+P90gYXgm0sKVd4+30GLesocoRmMWh3Q0Q=="
11     }
12   }
13 }

 在test-format.js中使用

1 let timeFormat = require('datetime-format-wsy')
2 let date = timeFormat.getDateTime()
3 console.info(date)

结果:

(另外,使用node运行js文件,文件改动后不会自动更新,需要重复运行node命令,

可以使用nodemon代替,自动重启,提升效率,

安装:npm install -g nodemon

使用: nodemon filename.js)

代码github地址:

https://github.com/shiyuan598/FrontEnd/tree/master/npm/datetime-format
 

 仅介绍npm包开发与发布的流程,如有问题请不吝赐教,欢迎留言交流~

原文地址:https://www.cnblogs.com/jyughynj/p/11227274.html