从零使用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获取select标签选中值的两种方式
Jan 09 Javascript
纯js和css实现渐变色包括静态渐变和动态渐变
May 29 Javascript
setTimeout内不支持jquery的选择器的解决方案
Apr 28 Javascript
如何使用Vuex+Vue.js构建单页应用
Oct 27 Javascript
微信小程序 设置启动页面的两种方法
Mar 09 Javascript
vue-router路由参数刷新消失的问题解决方法
Jun 17 Javascript
使用angular帮你实现拖拽的示例
Jul 05 Javascript
基于原生js运动方式关键点的总结(推荐)
Oct 01 Javascript
react 国际化的实现代码示例
Sep 14 Javascript
vue实现微信获取用户信息的方法
Mar 21 Javascript
vue实现后台管理权限系统及顶栏三级菜单显示功能
Jun 19 Javascript
vue实现移动端返回顶部
Oct 12 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中trait使用方法详细介绍
2017/05/21 PHP
PHP基于SPL实现的迭代器模式示例
2018/04/22 PHP
JavaScript 空位补零实现代码
2010/02/26 Javascript
通过jquery还原含有rowspan、colspan的table的实现方法
2012/02/10 Javascript
Jquery颜色选择器ColorPicker实现代码
2012/11/14 Javascript
js修改地址栏URL参数解决url参数问题
2012/12/15 Javascript
非常漂亮的JS+CSS图片幻灯切换特效
2013/11/20 Javascript
ActiveX控件与Javascript之间的交互示例
2014/06/04 Javascript
jquery中页面Ajax方法$.load的功能使用介绍
2014/10/20 Javascript
前端框架Vue.js中Directive知识详解
2016/09/12 Javascript
微信小程序如何获取用户收货地址
2018/11/27 Javascript
layui type2 通过url给iframe子页面传值的例子
2019/09/06 Javascript
JS实现炫酷雪花飘落效果
2020/08/19 Javascript
js实现飞机大战游戏
2020/08/26 Javascript
Python urllib模块urlopen()与urlretrieve()详解
2013/11/01 Python
python的类变量和成员变量用法实例教程
2014/08/25 Python
python查询sqlite数据表的方法
2015/05/08 Python
Python通过90行代码搭建一个音乐搜索工具
2015/07/29 Python
分享一下Python 开发者节省时间的10个方法
2015/10/02 Python
django允许外部访问的实例讲解
2018/05/14 Python
python topN 取最大的N个数或最小的N个数方法
2018/06/04 Python
pytorch AvgPool2d函数使用详解
2020/01/03 Python
Python中的sys.stdout.write实现打印刷新功能
2020/02/21 Python
Python如何获取文件路径/目录
2020/09/22 Python
如何用Python和JS实现的Web SSH工具
2021/02/23 Python
全球性的奢侈品梦工厂:Forzieri(福喜利)
2019/02/20 全球购物
高三生物教学反思
2014/01/25 职场文书
食品安全责任书
2014/04/15 职场文书
校园主题婚礼活动策划方案
2014/09/15 职场文书
2014年安全管理工作总结
2014/12/01 职场文书
办公室行政主管岗位职责
2015/04/09 职场文书
公司辞职信模板
2015/05/13 职场文书
与死神共舞观后感
2015/06/15 职场文书
幼儿园教师辞职信
2019/06/21 职场文书
Python制作一个随机抽奖小工具的实现
2021/07/07 Python
微信小程序结合ThinkPHP5授权登陆后获取手机号
2021/11/23 PHP