把通用的功能开发成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地址:
仅介绍npm包开发与发布的流程,如有问题请不吝赐教,欢迎留言交流~