开发并发布依赖包,作为工具包供别人npm install
1.初识包及 npm
包的概念:
nodejs 中的第三方模块叫包
不同于 nodejs 中的内置模块与自定义模块,包是由第三方个人或团队开发出来的,免费供所有人使用
nodejs 中的包都是免费开源的,不需要付费即可免费下载使用
为什么需要包
由于 nodejs 的内置模块仅仅提供了一些底层的 API,导致在基于内置模块进行项目开发的时候,效率很低
包是基于内置模块封装出来的,提供了更高级,更方便的 API,极大的提高开发效率
包和内置模块之间的关系,类似于 jQuery 和浏览器内置 API 之间的关系
包从哪里下载
npm,Lnc.公司旗下的著名网站
https://www.npmjs.com/ 这个网站搜索需要的包
全球最大的包共享平台,你可以从这个网站上搜索到任何你需要的包
npm,Lnc.公司提供一个服务器地址,共享所有的包
https://registry.npmjs.org/ 这个服务器地址可以下载需要的包
如何下包
npm,Lnc.公司提供一个包管理工具
下载 xxx 包
npm install xxx
2.解决下包速度慢的问题
npm 设置镜像源
查看当前下包镜像源
npm config get registry
将下包镜像源切换到淘宝镜像源
npm config set registry=https://registry.npm.taobao.org/
查看
nrm 切换 npm 下包镜像源
nrm 安装
将 nrm 安装为全局可用的工具
npm i nrm -g
查看所有 npm 镜像源
nrm ls
将镜像源切换到 taobao 镜像
nrm use taobao
3.自定义 npm 包,以及包的发布
自定义 npm 包
自定义 npm 包目录结构
|---src
|------dateFormat.js
|------escapeHTML.js
|---index.js
|---package.json
|---readme.md

package.json
{
"name": "gyc_tools",
"version": "1.0.0",
"main": "index.js",
"description": "格式化时间,HTMLEscape功能",
"keywords": ["gyc", "dateForm", "escape"],
"license": "ISC"
}
"name": "gyc_tools", // 包的名字
"version": "1.0.0", // 包的版本
"main": "index.js", // 包的入口文件
"description": "格式化时间,HTMLEscape 功能", // 包的功能描述
"keywords":["gyc","dateForm","escape"], // 包的关键字
"license": "ISC" // 包的开源协议
index.js
const date = require('./src/dateFormat')
const escape = require('./src/escapeHTML')
module.exports = {
...date,
...escape,
}
README.md
## 安装
npm i gyc-tools
## 导入
const gyc = require('gyc-tools')
## 格式化时间
// 调用 dateFormat 对时间进行格式化
const dtstr = gyc.dateFormat(new Date())
// 结果 2022-02-00 16:18:51
console.log(dtstr)
## 转义 HTML 中的特殊字符
// 调用 htmlEscape 方法进行转换
const str = gyc.htmlEscape(hrmlStr)
// 结果<h1 title="abc">这是 h1 标签<span>这是 span 标签 123 &nbsp;</span></h1>
console.log(str)
## 还原 HTML 中的特殊字符
// 调用 htmlUnEscape 方法进行还原
const str2 = gyc.htmlUnEscape(hrmlStr)
// 结果<h1 title="abc">这是 h1 标签<span>这是 span 标签 123 </span></h1>
console.log(str2)
## 开源协议
ISC
开发并发布依赖包,作为工具包供别人npm install的更多相关文章
- [实践]使用JarJar优雅的发布依赖包
[实践]使用JarJar优雅的发布依赖包 打包工具: Jar Jar Links是一个Java类库重新打包工具. 可以帮助你将其它用到的java库打包并嵌入到你自己的项目jar包中.这样做的原因有: ...
- Cloudera5.8.3 HBase1.2.0开发必须的jar包
Cloudera的HBase开发环境下载依赖包特别麻烦,通常是直接在CDH服务器上拷.
- ubuntu安装greenplum依赖包
ubuntu安装greenplum的过程中有两个比较难找的包,特地写出来给大家分享一下: 错误提示1:configure: error: header file <ldap.h> is r ...
- Maven - 实例-2-使用本地仓库中的依赖包
Maven引入构建包的流程 执行mvn compile命令编译源代码,如果编译过程中需要用到其他的包, maven将会在pom.xml文件中查找是否引入该依赖包的坐标. 示例: <depende ...
- CentOS6.5 安装Python 的依赖包
1.CentOS6.5 安装Python 的依赖包 yum groupinstall "Development tools"yum install zlib-devel bzip2 ...
- Yum 下载安装包及对应依赖包
Yum 下载安装包及对应依赖包: 安装该软件:yum install -y yum-plugin-downloadonly 以下载 openssh-server 为例 yum install -y o ...
- 开发并发布npm包,支持TypeScript提示,rollup构建打包
前言: 工作了几年,想把一些不好找现成的库的常用方法整理一下,发布成npm包,方便使用.也学习一下开发发布流程. 主要用到的工具:npm. 开发库:babel.typescript.rollup.es ...
- Spring MVC 学习笔记12 —— SpringMVC+Hibernate开发(1)依赖包搭建
Spring MVC 学习笔记12 -- SpringMVC+Hibernate开发(1)依赖包搭建 用Hibernate帮助建立SpringMVC与数据库之间的联系,通过配置DAO层,Service ...
- npm包开发与发布
把通用的功能开发成npm包,便用使用和维护,更重要的是可以分享给广大的开发者,是不是很激动人心! 那么,步骤如下: 1.创建项目 创建项目目录,npm init ,根据需要输入配置信息(建完后也可以在 ...
随机推荐
- python23day
内容回顾 面向对象 类:是具有相同属性和相似功能的一类事物 对象/实例:具体的,一类可以有多个对象 实例化 练习 # 定义一个圆形类,半径是这个圆的属性,实例化一个半径为5的圆形,一个半径为10的圆形 ...
- 斯坦福 CS183 & YC 创业课系列中文笔记
欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. 在线阅读 ApacheCN 面试求职交流群 724187166 ApacheCN 学习资源 目录 Zero to One 从0到1 ...
- Android状态栏微技巧,带你真正理解沉浸式模式【转】
感谢! 本文转自大佬郭霖:http://blog.csdn.net/guolin_blog/article/details/51763825 转载请注明出处:http://blog.csdn.net/ ...
- k8s实战之部署Prometheus+Grafana可视化监控告警平台
写在前面 之前部署web网站的时候,架构图中有一环节是监控部分,并且搭建一套有效的监控平台对于运维来说非常之重要,只有这样才能更有效率的保证我们的服务器和服务的稳定运行,常见的开源监控软件有好几种,如 ...
- 增删改查简单的sql语句
insert INSERT INTO t_stu (name,age) VALUES ('wang',12) INSERT INTO t_stu VALUES(NULL,' ...
- C++ 反汇编:关于函数调用约定
函数是任何一门高级语言中必须要存在的,使用函数式编程可以让程序可读性更高,充分发挥了模块化设计思想的精髓,今天我将带大家一起来探索函数的实现机理,探索编译器到底是如何对函数这个关键字进行实现的,并使用 ...
- Solution -「CTSC 2018」「洛谷 P4602」混合果汁
\(\mathcal{Description}\) Link. \(n\) 种果汁,第 \(i\) 种美味度为 \(d_i\),每升价格 \(p_i\),一共 \(l_i\) 升.\(m\) ...
- mysql data local的使用导入与导出数据到.txt
一.先创建表 CREATE TABLE stu(id INT UNSIGNED AUTO_INCREMENT,NAME VARCHAR(15) UNIQUE, /* 唯一约束 , 可以不填写,如果填写 ...
- 前端提交数据到node的N种方式
写在前面 本篇介绍了前端提交数据给node的几种处理方式,从最基本的get和post请求,到图片上传,再到分块上传,由浅入深. GET请求 经典的get提交数据,参数通过URL传递给node,node ...
- [LeetCode]26.删除有序数组中的重复项(Java)
原题地址: remove-duplicates-from-sorted-array 题目描述: 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的 ...