从零使用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 相关文章推荐
繁简字转换功能
Jul 19 Javascript
js综合应用实例简单的表格统计
Sep 03 Javascript
Android中的jQuery:AQuery简介
May 06 Javascript
js判断元素是否隐藏的方法
Jun 09 Javascript
node.js中的url.format方法使用说明
Dec 10 Javascript
浅谈JavaScript对象的创建方式
Jun 13 Javascript
微信小程序 http请求详细介绍
Oct 09 Javascript
JavaScript设计模式之调停者模式实例详解
Feb 03 Javascript
jQuery动态添加li标签并添加属性和绑定事件方法
Feb 24 jQuery
Node.js的Koa实现JWT用户认证方法
May 05 Javascript
Vue-CLI 3.X 部署项目至生产服务器的方法
Mar 22 Javascript
CKeditor4 字体颜色功能配置方法教程
Jun 26 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
一个数据采集类
2007/02/14 PHP
php中session_unset与session_destroy的区别分析
2011/06/16 PHP
PHP统计当前在线用户数实例讲解
2015/10/21 PHP
php使用变量动态创建类的对象用法示例
2017/02/06 PHP
父窗口获取弹出子窗口文本框的值
2006/06/27 Javascript
JQuery的ajax基础上的超强GridView展示
2009/09/18 Javascript
初窥JQuery-Jquery简介 入门了解篇
2010/11/25 Javascript
DIY jquery plugin - tabs标签切换实现代码
2010/12/11 Javascript
jquery中通过父级查找进行定位示例
2013/06/28 Javascript
用jQuery实现的智能隐藏、滑动效果的返回顶部代码
2014/03/18 Javascript
jquery选择器原理介绍($()使用方法)
2014/03/25 Javascript
Bootstrap如何激活导航状态
2017/03/22 Javascript
webpack独立打包和缓存处理详解
2017/04/03 Javascript
jquery实现左右轮播图效果
2017/09/28 jQuery
解决vue-quill-editor上传内容由于图片是base64的导致字符太长的问题
2018/08/20 Javascript
JavaScript日期工具类DateUtils定义与用法示例
2018/09/03 Javascript
Vue结合后台导入导出Excel问题详解
2019/02/19 Javascript
JavaScript中this用法学习笔记
2019/03/17 Javascript
微信小程序学习笔记之登录API与获取用户信息操作图文详解
2019/03/29 Javascript
javascript中的数据类型检测方法详解
2019/08/07 Javascript
vue实现标签云效果的方法详解
2019/08/28 Javascript
Python Tkinter基础控件用法
2014/09/03 Python
django model去掉unique_together报错的解决方案
2016/10/18 Python
微信跳一跳python代码实现
2018/01/05 Python
python3实现表白神器
2019/04/09 Python
关于Kotlin中SAM转换的那些事
2020/09/15 Python
Html5新增标签有哪些
2017/04/13 HTML / CSS
Stuarts London美国/加拿大:世界领先的独立男装零售商之一
2019/03/18 全球购物
三年级学生评语
2014/04/23 职场文书
竞选副班长演讲稿
2014/04/24 职场文书
冬季安全检查方案
2014/05/23 职场文书
色戒观后感
2015/06/12 职场文书
奇妙的 CSS shapes(CSS图形)
2021/04/05 HTML / CSS
SpringBoot2零基础到精通之数据库专项精讲
2022/03/22 Java/Android
CSS实现渐变色边框(Gradient borders)的5种方法
2022/03/25 HTML / CSS
Java中的Kotlin 内部类原理
2022/06/16 Java/Android