从零使用TypeScript开发项目打包发布到npm


Posted in Javascript onFebruary 14, 2020

前言

typescript作为未来前端开发的主流框架,在前端开发的过程中也会越来越主要,相信这篇文章会对你有很大的帮助!

开发环境搭建

创建ming-npm-package文件夹

我在桌面上创建了一个ming-npm-package的文件夹,然后在编辑器里面打开

初始化项目

npm init

通过npm init 初始化项目来创建用户package.json文件

也可以npm init -y 这个是使用的默认的配置,我个人使用的是npm init

设置配置项

package name: (ming-npm-package)
version: (1.0.0)
description: use ts
//这下边的entry point: 这个是指定的最后使用的文件,而不是编译文件
entry point: (index.js) ./dist/ming-npm-package.js
test command:
git repository:
keywords: typescript
author: xiaoming
license: (ISC) MIT
About to write to C:\Users\明\Desktop\ming-npm-package\package.json:

{
 "name": "ming-npm-package",
 "version": "1.0.0",
 "description": "use ts",
 "main": "./dist/ming-npm-package.js",
 "scripts": {
  "test": "echo \"Error: no test specified\" && exit 1"
 },
 "keywords": [
  "typescript"
 ],
 "author": "xiaoming",
 "license": "MIT"
}


Is this OK? (yes)

这就是我设置的配置项,没问题就可以输入yes然后回车了

从零使用TypeScript开发项目打包发布到npm

创建tsconfig.json文件

tsc --init

就会生成一个tsconfig.json文件

修改tsconfig.json默认文件

把这两个注释打开

"declaration": true, //打包之后是否生成声明文件

"outDir": "./dist", //输出文件

添加exclude,忽略dist文件

在打包的时候会排除这里面指定的路径文件

"exclude": [
  "./dist"
 ]

安装依赖

npm install typescript -D

开始编码

创建ming-npm-package.ts文件

用来编写功能

const arrayMap = (array: [], callback:(item: any,index: number, arr: any[]) => any): any => {
  let i = -1
  const len = array.length
  let resArray = []
  while (++i < len){
    resArray.push(callback(array[i],i,array))
  }
  return resArray
}
export = arrayMap

对代码进行编译

tsc

此时我们的项目就会多了一个dist目录

从零使用TypeScript开发项目打包发布到npm

登录npm

大家没有npm账号的可以注册一个

这个是网址

https://www.npmjs.com

然后在编辑器终端里面输入

npm login

接着就会出来用户名、密码、邮箱这些依次填一下

从零使用TypeScript开发项目打包发布到npm

创建.npmignore文件

在项目根目录里创建一个.npmjgnore

这个其实和.gitignor差不多,就是你发npm包的时候,希望哪些文件或者文件夹不发到这个npm上

这里不用写的node_modules,这是默认忽略的

从零使用TypeScript开发项目打包发布到npm

版本号

在package.json里面版本号,
每发布一次都要修改一下

从零使用TypeScript开发项目打包发布到npm

发布

npm publish

发布成功

从零使用TypeScript开发项目打包发布到npm

安装使用

我们把package.json文件里面的name改成:
ming-npm

从零使用TypeScript开发项目打包发布到npm

目的是 我们要安装的包不能和package.json里面的包名字是一样的

然后再安装一下我们这个包:

npm install ming-npm-package@1.0.1

跟其他的包一样 npm install 包名

安装成功:

从零使用TypeScript开发项目打包发布到npm

再次发布

如果需要再次发布一定要改个版本号,改成之前的名字

然后再tsc对代码进行编译

npm publish 进行发布

源码

这个是我的代码

https://github.com/shifengming/ming-npm-package

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
原生Js页面滚动延迟加载图片实现原理及过程
Jun 24 Javascript
8个实用的jQuery技巧
Mar 04 Javascript
jquery对象和javascript对象即DOM对象相互转换
Aug 07 Javascript
你所不了解的javascript操作DOM的细节知识点(一)
Jun 17 Javascript
Jquery时间轴特效(三种不同类型)
Nov 02 Javascript
bootstrap-treeview自定义双击事件实现方法
Jan 09 Javascript
前端开发必知的15个jQuery小技巧
Jan 22 Javascript
jQuery基于事件控制实现点击显示内容下拉效果
Mar 07 Javascript
Angular2+如何去除url中的#号详解
Dec 20 Javascript
Node.js readline模块与util模块的使用
Mar 01 Javascript
select标签设置默认选中的选项方法
Mar 02 Javascript
js代码实现轮播图
May 04 Javascript
JavaScript中的this原理及6种常见使用场景详解
Feb 14 #Javascript
node.js中对Event Loop事件循环的理解与应用实例分析
Feb 14 #Javascript
Angular之jwt令牌身份验证的实现
Feb 14 #Javascript
node.js中module模块的功能理解与用法实例分析
Feb 14 #Javascript
JS实现简易计算器
Feb 14 #Javascript
vue vantUI tab切换时 list组件不触发load事件的问题及解决方法
Feb 14 #Javascript
node.js中npm包管理工具用法分析
Feb 14 #Javascript
You might like
PHP读取文件并可支持远程文件的代码分享
2012/10/03 PHP
PHP输出两个数字中间有多少个回文数的方法
2015/03/23 PHP
php自动给网址加上链接的方法
2015/06/02 PHP
php中switch语句用法详解
2015/08/17 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
2019/12/30 PHP
巧妙破除网页右键禁用的十大绝招
2006/08/12 Javascript
点弹代码 点击页面任何位置都可以弹出页面效果代码
2012/09/17 Javascript
jquery表格内容筛选实现思路及代码
2013/04/16 Javascript
JS中的prototype与面向对象的实例讲解
2013/05/22 Javascript
jQuery异步加载数据并添加事件示例
2014/08/24 Javascript
jQuery实现html表格动态添加新行的方法
2015/05/28 Javascript
js实现不重复导入的方法
2016/03/02 Javascript
所见即所得的富文本编辑器bootstrap-wysiwyg使用方法详解
2016/05/27 Javascript
jQuery.uploadify文件上传组件实例讲解
2016/09/23 Javascript
JS实现的适合做faq或menu滑动效果示例
2016/11/17 Javascript
微信小程序 上传头像的实例详解
2017/10/27 Javascript
深入理解JavaScript 中的执行上下文和执行栈
2018/10/23 Javascript
react 组件传值的三种方法
2019/06/03 Javascript
微信小程序接入腾讯云验证码的方法步骤
2020/01/07 Javascript
JS通用方法触发点击事件代码实例
2020/02/17 Javascript
javascript实现滚动条效果
2020/03/24 Javascript
vue 验证两次输入的密码是否一致的方法示例
2020/09/29 Javascript
Python yield 小结和实例
2014/04/25 Python
在Python程序中实现分布式进程的教程
2015/04/28 Python
Python实现打印螺旋矩阵功能的方法
2017/11/21 Python
python实现Windows电脑定时关机
2018/06/20 Python
python的concat等多种用法详解
2018/11/28 Python
Python实现统计英文文章词频的方法分析
2019/01/28 Python
11个Python Pandas小技巧让你的工作更高效(附代码实例)
2019/04/30 Python
如何使用python写截屏小工具
2020/09/29 Python
美国知名珠宝首饰品牌:Gemvara
2017/10/06 全球购物
英文翻译的自我评价语句
2013/10/04 职场文书
平安校园建设方案
2014/05/02 职场文书
师范毕业生求职信
2014/07/11 职场文书
Mongo服务重启异常问题的处理方法
2021/07/01 MongoDB
springmvc直接不经过controller访问WEB-INF中的页面问题
2022/02/24 Java/Android