从零使用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 相关文章推荐
javascript获取隐藏元素(display:none)的高度和宽度的方法
Jun 06 Javascript
HTML,CSS,JavaScript速查表推荐
Dec 02 Javascript
js精准的倒计时函数分享
Jun 29 Javascript
全面了解JavaScirpt 的垃圾(garbage collection)回收机制
Jul 11 Javascript
AngularJS实现在ng-Options加上index的解决方法
Nov 03 Javascript
js字符串操作总结(必看篇)
Nov 22 Javascript
基于JavaScript实现的插入排序算法分析
Apr 14 Javascript
JavaScript使用math.js进行精确计算操作示例
Jun 19 Javascript
d3绘制基本的柱形图的实现代码
Dec 12 Javascript
vue移动端实现手机左右滑动入场动画
Jun 17 Javascript
使用 Element UI Table 的 slot-scope方法
Oct 10 Javascript
JavaScript事件冒泡机制原理实例解析
Jan 14 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以指定字段为索引返回数据库所取的数据数组
2013/06/30 PHP
PHP加密解密实例分析
2015/12/25 PHP
针对多用户实现头像上传功能PHP代码 适用于登陆页面制作
2016/08/17 PHP
PHP 计算两个特别大的整数实例代码
2018/05/07 PHP
php5.5使用PHPMailer-5.2发送邮件的完整步骤
2018/10/14 PHP
JavaScript 错误处理与调试经验总结
2010/08/10 Javascript
基于JQuery的抓取博客园首页RSS的代码
2011/12/01 Javascript
javascript中有趣的反柯里化深入分析
2012/12/05 Javascript
Js数组的操作push,pop,shift,unshift等方法详细介绍
2012/12/28 Javascript
表单元素的submit()方法和onsubmit事件应用概述
2013/02/01 Javascript
利用进制转换压缩数字函数分享
2014/01/02 Javascript
jQuery中prop()方法用法实例
2015/01/05 Javascript
IE及IE6浏览器中判断JS文件加载成功失败的方法
2015/02/18 Javascript
jQuery Mobile弹出窗、弹出层知识汇总
2016/01/05 Javascript
js操作DOM--添加、删除节点的简单实例
2016/07/08 Javascript
Bootstrap Img 图片样式(推荐)
2016/12/13 Javascript
Angular4学习之Angular CLI的安装与使用教程
2018/01/04 Javascript
JavaScript动态添加数据到表单并提交的几种方式
2019/06/26 Javascript
jquery轻量级数字动画插件countUp.js使用详解
2019/10/17 jQuery
浅谈Vue 自动化部署打包上线
2020/06/14 Javascript
[01:44]Ti10举办地公布
2019/08/25 DOTA
python基本语法练习实例
2017/09/19 Python
在python 中split()使用多符号分割的例子
2019/07/15 Python
python Canny边缘检测算法的实现
2020/04/24 Python
tensorflow pb to tflite 精度下降详解
2020/05/25 Python
详解基于Facecognition+Opencv快速搭建人脸识别及跟踪应用
2021/01/21 Python
css3简单练习实现遨游浏览器logo的绘制
2013/01/30 HTML / CSS
纯CSS3实现的井字棋游戏
2020/11/25 HTML / CSS
美国派对用品及装饰品网上商店:Shindigz
2016/07/30 全球购物
日本必酷网络直营店:Biccamera
2019/03/23 全球购物
C和C++经典笔试题附答案解析
2014/08/18 面试题
社会实践先进工作者事迹材料
2014/05/06 职场文书
企业宣传策划方案
2014/05/29 职场文书
2014年办公室文员工作总结
2014/11/12 职场文书
整改通知书
2015/04/20 职场文书
民事调解协议书
2016/03/21 职场文书