从零使用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实现的listview效果
Apr 28 Javascript
查看大图功能代码jquery版
Nov 05 Javascript
js控制文本框只输入数字和小数点的方法
Mar 10 Javascript
基于JS实现无缝滚动思路及代码分享
Jun 07 Javascript
Select2.js下拉框使用小结
Oct 24 Javascript
jq stop()和:is(:animated)的用法及区别(详解)
Feb 12 Javascript
Vue项目中引入外部文件的方法(css、js、less)
Jul 24 Javascript
javascript计算渐变颜色的实例
Sep 22 Javascript
Angular实现较为复杂的表格过滤,删除功能示例
Dec 23 Javascript
Vue中v-for的数据分组实例
Mar 07 Javascript
vue配置font-awesome5的方法步骤
Jan 27 Javascript
微信小程序开发实现消息推送
Nov 18 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中去除所有js,html,css代码
2010/10/12 PHP
PHP清除数组中所有字符串两端空格的方法
2014/10/20 PHP
php处理带有中文URL的方法
2016/07/11 PHP
PHP自定义错误用法示例
2016/09/28 PHP
php性能分析之php-fpm慢执行日志slow log用法浅析
2016/10/17 PHP
JQuery 选择和过滤方法代码总结
2010/11/19 Javascript
多个表单中如何获得这个文件上传的网址实现js代码
2013/03/25 Javascript
jQuery遍历Table应用示例
2014/04/09 Javascript
JavaScript实现的字符串replaceAll函数代码分享
2015/04/02 Javascript
Javascript对象Clone实例分析
2015/06/09 Javascript
JavaScript对Cookie进行读写操作实例
2015/07/25 Javascript
jQuery实现的多级下拉菜单效果代码
2015/08/24 Javascript
js HTML5 Ajax实现文件上传进度条功能
2016/02/13 Javascript
JS 组件系列之 bootstrap treegrid 组件封装过程
2017/04/28 Javascript
js 发布订阅模式的实例讲解
2017/09/10 Javascript
JS实现判断图片是否加载完成的方法分析
2018/07/31 Javascript
Vue分页效果与购物车功能
2019/12/13 Javascript
JS window对象简单操作完整示例
2020/01/14 Javascript
[03:53]2016国际邀请赛中国区预选赛第三日TOP10精彩集锦
2016/06/29 DOTA
python 输出一个两行字符的变量
2009/02/05 Python
Python中的两个内置模块介绍
2015/04/05 Python
浅谈pytorch、cuda、python的版本对齐问题
2020/01/15 Python
python查看矩阵的行列号以及维数方式
2020/05/22 Python
使用sklearn对多分类的每个类别进行指标评价操作
2020/06/11 Python
如何对python的字典进行排序
2020/06/19 Python
Python自动化测试基础必备知识点总结
2021/02/07 Python
浅谈Html5多线程开发之WebWorkers
2018/05/02 HTML / CSS
苹果香港官方商城:Apple香港
2016/09/14 全球购物
同学聚会策划方案
2014/06/06 职场文书
2014年入党积极分子党校培训心得体会
2014/07/08 职场文书
社区班子个人对照检查材料思想汇报
2014/10/07 职场文书
新娘父亲婚礼致辞
2015/07/27 职场文书
2019客服个人年终工作总结范文
2019/07/08 职场文书
go开发alertmanger实现钉钉报警
2021/07/16 Golang
2022新作动画《福星小子》释出宣传影片 加入内田真礼&宫野真守配音演出
2022/04/08 日漫
vue elementUI表格控制对应列
2022/04/13 Vue.js