开发属于自己的包,并上传到npm上
1.DIY开发包
1.1符合标准的包结构
一个规范的包,它的组成结构,必须符合以下3点要求:
- 包必须以单独的目录而存在
- 包的顶级目录下,必须包含
package.json这个包管理文件 package.json中必须包含name,version,main这三个属性,分别代表包的名字、版本号、包的入口
注意:以上 3 点要求是一个规范的包结构必须遵守的格式,关于更多的约束,可以参考这个网址
1.2初始化包的项目结构
- 新建
ccljy_date文件夹,作为包的根目录,尽量不要中文命名,以避免不必要的麻烦 - 在
ccljy_date文件夹中,新建如下三个文件:
package.json(包管理配置文件),在项目根目录打开cmd窗口,输入npm init -y快速创建index.js(包的入口文件)README.md(包的说明文档)
图示:

1.3初始化package.json 配置文件
{
"name": "flightloong-tools",
"version": "1.0.0",
"description": "提供格式化时间、HTMLEscape相关功能",
"main": "index.js",
"keywords": [
"itcast",
"itheima",
"dateFormat",
"escape"
],
"license": "ISC"
}
1.4在 index.js 中定义格式化时间的方法
// 包的入口文件 index.js
// 定义格式化时间的函数
function dateFormat (dateStr) {
const dt = new Date(dateStr)
const y = padZero(dt.getFullYear())
const m = padZero(dt.getMonth() + 1)
const d = padZero(dt.getDate())
const hh = padZero(dt.getHours())
const mm = padZero(dt.getMinutes())
const ss = padZero(dt.getSeconds())
return `${y}-${m}-${d} ${hh}:${mm}:${ss}`
}
// 定义一个补零的函数
function padZero (n) {
return n > 9 ? n : '0' + n
}
// 向外暴露需要的成员
module.exports = {
dateFormat
}
1.5编写包的说明文档
- 包根目录中的
README.md文件,是包的使用说明文档。通过它,我们可以事先把包的使用说明,以markdown的格式写出来,方便用户参考 README文件中具体写什么内容,没有强制性的要求;只要能够清晰地把包的作用、用法、注意事项等描述清楚即可- 我们所创建的这个包的
README.md文档中,会包含以下 6 项内容
- 安装方式
- 导入方式
- 格式化时间
- 转义 HTML 中的特殊字符
- 还原 HTML 中的特殊字符
- 开源协议
### 安装
```
npm i ccljy_date
```
### 导入
```js
const date = require('./ccljy_date')
```
### 格式化时间
```js
// 调用 dateFormat 对时间进行格式化
const dtStr = date.dateFormat(new Date())
// 结果 2020-04-03 17:20:58
console.log(dtStr)
```
### 开源协议
ISC
2.注册 npm 账号
- 访问 npm 网站,点击
sign up按钮,进入注册用户界面 - 填写账号相关的信息:
Full Name、Public Email、Username、Password - 点击
Create an Account按钮,注册账号 - 登录邮箱,点击验证链接,进行账号的验证
3.登录 npm 账号
npm账号注册完成后,可以在项目根目录,打开cmd终端中执行npm login命令,依次输入用户名、密码、邮箱,每输完一个内容,按回车,即可登录成功(尽量选择网络良好的环境)- 注意:在运行
npm login命令之前,必须先把下包的服务器地址切换为npm的官方服务器。否则会导致发布包失败!
4.把包发布到 npm上
在包的根目录打开cmd终端,运行 npm publish 命令,即可将包发布到 npm 上(注意:包名不能雷同)
5.删除已发布的包
运行 npm unpublish 包名 --force 命令,即可从 npm 删除已发布的包
开发属于自己的包,并上传到npm上的更多相关文章
- 上传一个npm包
1.先创建一个npm账号 https://www.npmjs.com/signup 2.在cmd里输入命令进入项目文件夹 3.使用npm init 命令创建一个package.json(确保nodej ...
- 如何写一个自己的组件库,打成NPM包,并上传到NPM远程
1.首先使用vue create my_project 构建一个自己的Vue项目 2.vue.config.js和package.json配置如下,做了些修改 const path = require ...
- .net core版 文件上传/ 支持批量上传,拖拽以及预览,bootstrap fileinput上传文件
asp.net mvc请移步 mvc文件上传支持批量上传,拖拽以及预览,文件内容校验 本篇内容主要解决.net core中文件上传的问题 开发环境:ubuntu+vscode 1.导入所需要的包:n ...
- Struts2 单个文件上传/多文件上传
1导入struts2-blank.war所有jar包:\struts-2.3.4\apps\struts2-blank.war 单个文件上传 upload.jsp <s:form action= ...
- 如何把项目上传到GitHub上
p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Consolas; color: #a5b2b9 } span.Apple-tab-span ...
- 如何通过TortoiseGit(小乌龟)把本地项目上传到github上
1.第一步: 安装git for windows(链接:https://gitforwindows.org/)一路next就好了, 如果遇到什么问题可以参考我另外一篇文章~^ - ^ 2.第二步:安装 ...
- 功能强大的文件上传插件带上传进度-WebUploader
WebUploader是由Baidu WebFE(FEX)团队开发的一个以HTML5/FLASH构建的现代文件上传组件.在现代的浏览器里面能充分发挥HTML5的优势,同时又不摒弃主流IE浏览器,沿用老 ...
- 在Asp.Net Core中配置使用MarkDown富文本编辑器实现图片上传和截图上传(开源代码.net core3.0)
我们的富文本编辑器不能没有图片上传尤其是截图上传,下面我来教大家怎么实现MarkDown富文本编辑器截图上传和图片上传. 1.配置编辑器到html页 <div id="test-edi ...
- 在IDEA中搭建Java源码学习环境并上传到GitHub上
打开IDEA新建一个项目 创建一个最简单的Java项目即可 在项目命名填写该项目的名称,我这里写的项目名为Java_Source_Study 点击Finished,然后在项目的src目录下新建源码文件 ...
随机推荐
- synchronized Lock(本地同步)锁的8种情况
Lock(本地同步)锁的8种情况 总结与说明: * 题目: * 1.标准访问,请问是先打印邮件还是短信 Email * 2.email方法新增暂停4秒钟,请问是先打印邮件还是短信 Email * 3. ...
- http报文常见的请求头、响应头
http报文常见的请求头 1.Accept Accept: text/html 浏览器可以接受服务器回发的类型为 text/html. Accept: / 代表浏览器可以处理所有类型,(一般浏览 ...
- PHP 7.4 checking for libzip 和 failed to open error_log 问题
来源: https://hqidi.com/154.html 两个深坑,成年阿根廷龙踩出来的坑,网上都没找到解决方法,都是自己摸索出来的. 前面一切顺利: yum install -y libxml2 ...
- session与cookie的联系与区别
一.Session与Cookie介绍 这些都是基础知识,不过有必要做深入了解.先简单介绍一下. 二者的定义: 当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你 ...
- 『Python』优雅的记录日志——loguru
1. 安装 pip install loguru 2. 初识 from loguru import logger logger.debug("This is a debug..." ...
- python处理权限关系一些注意事项
在模型类中多对多的关系(必须是对象) 如果要获取多对多表中的值,必须使用对象进行搜索,不能直接输入名称 例:这样才能查找到(下面例子是针对,组设置多对多关到用户,现在要根据用户获取相应的组) user ...
- 华为云计算IE面试笔记-云磁盘和普通磁盘的区别。
1. 定义 云硬盘:一种虚拟块存储服务,主要为ECS和BMS提供块存储空间 普通磁盘:也称本地硬盘,指挂载在计算实例物理机上的本地硬盘 2. 性能 吞吐量具体情况具体分析.(若云磁盘用的SSD本地磁盘 ...
- P6499-[COCI2016-2017#2]Burza【状压dp】
正题 题目链接:https://www.luogu.com.cn/problem/P6499 题目大意 \(n\)个点的一棵树,开始有一个棋子在根处,开始先手选择一个点封锁,然后后手封锁棋子所在点然后 ...
- P4126-[AHOI2009]最小割【网络流,tarjan】
正题 题目链接:https://www.luogu.com.cn/problem/P4126 题目大意 给出\(n\)个点\(m\)条边的一张有向图和起点终点.对于每条边求其是否是最小割的可行割/必须 ...
- Vulnstack内网靶场1
最近发现了一个内网的靶场网站,简单配置一下网络就可以,不用自己搭建这么麻烦漏洞信息 (qiyuanxuetang.net) 环境配置 内网1靶场由三台机器构成:WIN7.2008 server.200 ...