Node — 第九天 (ES6降级 and 发布属于自己的[第三方模块]包)
ES6降级处理
因为 ES 6 有浏览器兼容性问题,可以使用一些工具进行降级处理,例如:babel
降级处理 babel 的使用步骤
- 安装 Node.js
- 命令行中安装 babel
- 配置文件
.babelrc
- 运行命令,完成降级
项目初始化 (项目文件夹不能有中文)
npm init -y
在命令行中,安装 babel babel官网
npm install @babel/core @babel/cli @babel/preset-env
配置文件
.babelrc
(手工创建这个文件)babel 的降级处理配置
{"presets": ["@babel/preset-env"] }
在命令行中,运行
# 把转换的结果输出到指定的文件 npx babel index.js -o test.js # 把转换的结果输出到指定的目录 npx babel 包含有js的原目录 -d 转换后的新目录
发布属于自己的包
规范的包结构
在清楚了包的概念、以及如何下载和使用包之后,接下来,我们深入了解一下包的内部结构。
一个规范的包结构,需要符合以下 3 点要求:
- 包必须以单独的目录而存在
- 包的顶级目录下要必须包含
package.json
这个包管理配置文件 package.json
中必须包含name
,version
,main
这三个属性,分别代表包的名字、版本号、包的入口。- name 包的名字,我们使用 require() 加载模块的时候,使用的就是这个名字
- version 版本,1.2.18 ,对于一个新的包来说,版本是 1.0.0
- main 入口文件。默认是 index.js 。如果不是,需要使用main指定
注意:以上 3 点要求是一个规范的包结构必须遵守的格式,关于更多的约束,可以参考如下网址:
https://yarnpkg.com/zh-Hans/docs/package-json
开发属于自己的包
需要实现的功能是(比如把首字母转换成大写、把时间处理成年月日的形式)
初始化包的基本结构
- 新建 itheima-ucfirst 文件夹,作为包的根目录
- 在 itheima-ucfirst 文件夹中,新建如下三个文件:
- package.json (包管理配置文件)
- index.js (包的入口文件)
- README.md (包的说明文档)
初始化 package.json
关于更多 license 许可协议相关的内容,可参考 https://www.jianshu.com/p/86251523e898
index.js 中定义功能方法
编写包的说明文档
包根目录中的 README.md 文件,是包的使用说明文档。通过它,我们可以事先把包的使用说明,以 markdown 的 格式写出来,方便用户参考。
README 文件中具体写什么内容,没有强制性的要求;只要能够清晰地把包的作用、用法、注意事项等描述清楚即可。 我们所创建的这个包的 README.md 文档中,会包含以下 4 项内容:(可以参考其他包的文档,比如multer)
- 安装方式
- 导入方式
- 方法使用说明
- 开源协议
发布包
注册npm账号
- 访问 https://www.npmjs.com/ 网站
- 点击 sign up 按钮,进入注册用户界面
- 填写账号相关的信息
- 点击 Create an Account 按钮,注册账号
登录 npm 账号(
指的不是页面中登录,而是终端中登录
)npm 账号注册完成后,可以在终端中执行 npm login 命令,依次输入用户名、密码、邮箱后,即可登录成功。
把包发布到 npm 上
- 将终端切换到包的根目录
- 切换镜像源为npm官网(用taobao的镜像源不行)
- 运行 npm publish 命令,即可将包发布到 npm 上
- 注意:包名不能雷同
常见错误
- 没有切换镜像源。要发布到npm上,必须切换镜像源为npm
- 24小时内不能重复发布
- 新注册的账号,必须先邮箱(邮件可能是垃圾邮件)验证,然后才能发布
删除已发布的包
- 运行 npm unpublish 包名 --force 命令,即可从 npm 删除已发布的包。
注意:
- npm unpublish 命令只能删除 72 小时以内发布的包
- npm unpublish 删除的包,在 24 小时内不允许重复发布
- 发布包的时候要慎重,尽量不要往 npm 上发布没有意义的包!
更多关于npm的命令:https://www.npmjs.cn/
Node — 第九天 (ES6降级 and 发布属于自己的[第三方模块]包)相关推荐
- java-初识大前端Node.js、ES6、Npm、Babel、模块化规范、WebPack、Vue-element-admin本地安装问题及解决、Git安装及配置、uni-app
VS code安装 安装成功 配置自动补齐Emment Node.js node.js下载网址: http://nodejs.cn/ 安装成功! 概念 Node.js发布于2009年5月,由Ryan ...
- node中模块、AMD与CMD、ES6模块,node中使用ES6
1.Nodejs 中的模块 在node环境中一个js文件就是一个模块(module) 我们采用的是CommonJS规范,使用require引入模块,使用module.exports导出接口 node的 ...
- node中使用es6/7/8 --- 支持性与性能
前言 这几年react.vue的快速发展,越来越多的前端开始讲es6的代码运用在项目中,因为我们可以通过babel进行转译为低版本的js以便于运行在所有浏览器中,import.export.let.箭 ...
- 在node发布了一个身份证验证解析包cn-idcard-parse
在node发布了一个身份证验证解析包cn-idcard-parse,可以验证身份证,获取生日,性别,省份,地区. 练手用的
- Node — 第九天 (大事件项目接口实现三)
文章管理接口 设计数据表 添加文章接口 编写接口,使用postman模拟提交formdata类型的数据 在article.js 中,加入 /add 路由 postman模拟提交formdata类型的数 ...
- Node.js「一」—— Node.js 简介 / Node.js 模块 / 包 与 NPM
本文为 Node.js 系列笔记第一篇.文章参考:nodejs 教程 -- 大地:<深入浅出 Node.js>:阮一峰 nodejs 博客 文章目录 一.Node 简介 1. 简单介绍 2 ...
- node.js的第三方模块 nodemon、nrm、Gulp、Gulp插件
什么是第三方模块 别人写好的.具有特定功能的.我们能直接使用的模块即第三方模块,由于第三方模块通常都是由多个文件组成并且被放置在一个文件夹中,所以又名包. 第三方模块有两种存在形式: 以js文件的形式 ...
- 模块加载及第三方包:Node.js模块化开发、系统模块、第三方模块、package.json文件、Node.js中模块的加载机制、开发环境与生产环境、cookie与session
1.Node.js模块化开发 1.1 JavaScript开发弊端 JavaScript 在使用时存在两大问题,文件依赖和命名冲突. 1.2 软件中的模块化开发 一个功能就是一个模块,多个模块可以组成 ...
- 发布 Rafy .NET Standard 版本 Nuget 包
去年年中,Rafy 框架的源码就已经支持了 Net Standard 2.0 版本.其开源代码也已经上传到 Github 中:https://github.com/zgynhqf/rafy/tree/ ...
最新文章
- 想挖矿?不如先学习一下以太坊
- mysql两种索引结构_19.Mysql索引结构及常见索引的区别
- 深入理解java虚拟机(全章节完整)
- [网络安全自学篇] 七十.WannaCry勒索病毒复现及分析(三)蠕虫传播机制分析及IDA和OD逆向
- 坑爹!千万不要在生产环境使用控制台日志
- 计算机 编程 教程 pdf,计算机专业教程-第3章编程接口介绍.pdf
- Pytorch高阶API示范——线性回归模型
- jmeter强大的扩展插件!!
- 领域应用 | OMAHA联盟发布“疾病临床表现”、“中毒”知识图谱及OMAHA知识库
- pytorch查看应用指数衰减后的学习率
- Enterprise Library Logging App Block的时区问题
- MS SQL Server存储过程的优点有哪些呢?
- ●BZOJ 2393 Cirno的完美算数教室
- 关于阿里巴巴发布普惠体的一些思考
- Logback 深入分析
- 软件概要设计书写模板
- 深度学习中常用的非线性激励函数
- html 设置表格打印宽度设置,html表格怎么设置宽度
- 文本特征提取方法深度研究
- Medusa学习Medusa参数使用
热门文章
- java互联网架构师入门进阶之路
- nginx的日志配置
- 【Detectron2】使用 Detectron2 训练基于 coco 数据集的目标检测网络
- 机器学习 文本分类 代码_无需担心机器学习-如何在少于10行代码中对文本进行分类
- linux TCP/IP L2层数据包接收流程,eth_rxnetif_receive_skb处理流程
- 学习笔记(一)(x264编码流程)
- 利用Photoshop减小照片景深
- matlab 6.5 设计数字滤波器
- tftp服务器连接开发板下载内核提示:retry count exceeded; starting again
- java model 中文乱码,java传值乱码解决方法