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

那么,步骤如下:

1.创建项目

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

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

配置项

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

version:版本号

main:入口文件

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

 function addZero(num) {
return num > 9 ? num : '0' + num
} let formatter = {
date: null,
init(date) {
try {
if (date) {
this.date = new Date(date)
}
} catch (error) {
console.info(error)
}
},
getDateTime () {
let date = this.date || new Date()
let res = ''
res = date.getFullYear() + '-' + addZero(date.getMonth() + 1) + '-' +addZero(date.getDate())
+ ' ' + addZero(date.getHours()) + ':' + addZero(date.getMinutes()) + ':' + addZero(date.getSeconds())
return res
},
getDate () {
return this.getDateTime().split(' ')[0]
},
getTime () {
return this.getDateTime().split(' ')[1]
}
} module.exports = formatter
module.exports = formatter意思是把formatter输出。

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

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

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

主要包含:

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

 # datetime-format-wsy
格式化时间,获取2019-08-07 15:06:32或2019-08-07或15:06:32 # install
npm install -g datetime-format-wsy #github
https://github.com/shiyuan598/FrontEnd/tree/master/npm/datetime-format #usage
let formatter = require('./index')
formatter.init('2018-6-9')
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描述了该包的信息:

 {
"name": "datetime-format-wsy2",
"version": "1.0.1",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"datetime-format-wsy": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/datetime-format-wsy/-/datetime-format-wsy-1.0.1.tgz",
"integrity": "sha512-klyoj8r2KbOqN9zngjplMr+EWU+cGqa1KgzNn+TUtEpzvYqmnJvj+P90gYXgm0sKVd4+30GLesocoRmMWh3Q0Q=="
}
}
}

在test-format.js中使用

 let timeFormat = require('datetime-format-wsy')
let date = timeFormat.getDateTime()
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包开发与发布的流程,如有问题请不吝赐教,欢迎留言交流~

npm包开发与发布的更多相关文章

  1. 记npm包开发全过程

    概述 为什么开发npm包? 如何开发? 如何写单元测试? package.json 如何发布模块? 如何使用? 为什么开发npm模块? NPM的全称是Node Package Manager,是一个N ...

  2. npm包开发(whale-makelink)

    whale-makelink是一个npm工具,是强业务的工具,可以将当前工程目录下的项目文件夹,在README中生成项目的链接地址.Demo. 一.npm init 使用npm init生成packa ...

  3. 如何发布一个包到npm && 如何使用自己发布的npm包 && 如何更新发布到npm的package && 如何更新当前项目的包?

    如何发布一个包到npm First 在https://www.npmjs.com注册一个账号. Second 编辑好项目,文件大致如下: 其中,gitignore可以如下: .DS_Store nod ...

  4. 发布npm包时,发布源码,而不是dist后的打包文件

    基于webpack-scaffold 此脚手架配置 删除.gitignore文件中对dist文件夹的无视配置 修改package.json文件 { "private": true, ...

  5. 如何开发一个npm包并发布

    一.安装nodejs 不多说了,网上教程多得是 二.创建自己的npm包 目录结构 npm-test a.js b.js package.json 开发 为了简单便于理解,就开发一个简单地hello程序 ...

  6. 自定义npm包的创建、发布、更新和撤销

    大纲 1.准备2.自定义npm包3.发布自定义npm包4.引用npm包5.更新npm包6.撤销发布的npm包 简书原文 https://www.jianshu.com/p/d737bc5df5b7 1 ...

  7. VS Code项目中通过npm包的方式共享代码片段的方案实现

    VS Code项目中通过npm包的方式共享代码片段的方案实现 上周在 "VS Code项目中共享自定义的代码片段方案" 的文章中提到过一个共享代码片段的方案,上周经过调研后并没有发 ...

  8. 如何自己写一个公用的NPM包

    以markdown-clear,创建过程为例,讲解整个NPM包创建和发布流程 1 如何创建一个包 1.1 创建并使用一个工程 在GitHub上新建一个仓库,其名markdown-clear clone ...

  9. 如何开发一个npm包并发布到npm中央仓库

    转自: https://liaolongdong.com/2019/01/24/publish-public-npm.html 如何开发一个npm包并发布到npm中央仓库需求背景:平时在项目工作中可能 ...

随机推荐

  1. SqlHelper(基础)

    using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; usin ...

  2. 终于有人说清楚了--XGBoost算法

    1. 什么是XGBoost XGBoost是陈天奇等人开发的一个开源机器学习项目,高效地实现了GBDT算法并进行了算法和工程上的许多改进,被广泛应用在Kaggle竞赛及其他许多机器学习竞赛中并取得了不 ...

  3. core文件生成和路径设置

    在程序崩溃时,内核会生成一个core文件,即程序最后崩溃时的内存映像,和程序调试信息. 之后可以通过gdb,打开core文件察看程序崩溃时的堆栈信息,可以找出程序出错的代码所在文件和函数. 1.cor ...

  4. web前端css(三)

    一 . 文本属性和字体属性(常用) 1.    文本属性 text-align: left, right, enter, justify(两端对齐,只适用于英文);   /*对齐方式*/ color: ...

  5. 工具资源系列之给 windows 虚拟机装个 mac

    众说周知,Mac 很好但也很贵,对一般大众而言,漂亮简洁高颜值,对软件开发者而言,方便省心有点贵. 好到什么程度? 内置大量常用的开发工具,省去了初学者安装配置环境的麻烦,版本控制工具 svn 默认已 ...

  6. Python Day_1

    听说Python很6,然后我的偶像小甲鱼竟然在6年前(现在2019年)就开始制作Python的教程,而前不久(世界读书日前一个星期左右),京东有活动,小甲鱼的Python第一版本打折,顺便买了本(还凑 ...

  7. 页面的隐藏或显示:hidden与visibilityState

    我们在很多地方都需要判断用户是不是在当前页面,如果离开了当前页面我们需要捕捉到并进行一些操作. 例如:当视频处于播放状态时,我们需要判断用户是不是在当前页面以继续播放,如果离开了我们需要暂停播放. 有 ...

  8. C语言学习推荐《C语言参考手册(原书第5版)》下载

  9. zimg服务器图片数据迁移后,图片404异常的问题解决

    由于zimg特殊的图片存储结构及图片命名规则,其迁移数据应该当相当简单的,仅把对应的存储图片数据的文件夹复制即可.往往简单的东西总会有一些成本在里面,下面是我简单的迁移测试过程中遇到的一些问题,仅供参 ...

  10. 原创:Python编写通讯录,支持模糊查询,利用数据库存储

    1.要求 数据库存储通讯录,要求按姓名/电话号码查询,查询条件只有一个输入入口,自动识别输入的是姓名还是号码,允许模糊查询. 2.实现功能 可通过输入指令进行操作. (1)首先输入“add”,可以对通 ...