从零使用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 相关文章推荐
File文件控件,选中文件(图片,flash,视频)即立即预览显示
Apr 09 Javascript
基于jquery的设置页面文本框 只能输入数字的实现代码
Apr 19 Javascript
关于html+ashx开发中几个问题的解决方法
Jul 18 Javascript
JS阻止冒泡事件以及默认事件发生的简单方法
Jan 17 Javascript
10条建议帮助你创建更好的jQuery插件
May 18 Javascript
javascript随机抽取0-100之间不重复的10个数
Feb 25 Javascript
利用jQuery中的ajax分页实现代码
Feb 25 Javascript
AngularJS实用开发技巧(推荐)
Jul 13 Javascript
jQuery元素选择器实例代码
Feb 06 Javascript
vue2.0 element-ui中el-select选择器无法显示选中的内容(解决方法)
Aug 24 Javascript
深入理解Angularjs 脏值检测
Oct 12 Javascript
vuejs+element UI点击编辑表格某一行时获取内容填入表单的示例
Oct 31 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
一个图形显示IP的PHP程序代码
2007/10/19 PHP
PHP利用str_replace防注入的方法
2013/11/10 PHP
PHP中预定义的6种接口介绍
2015/05/12 PHP
laravel学习教程之存取器
2016/07/30 PHP
php实现分页功能的详细实例方法
2019/09/29 PHP
JS实现div内部的文字或图片自动循环滚动代码
2013/04/19 Javascript
JavaScript如何自定义trim方法
2015/07/28 Javascript
Bootstrap嵌入jqGrid,使你的table牛逼起来
2016/05/05 Javascript
IScroll5 中文API参数说明和调用方法
2016/05/21 Javascript
JavaScript实现点击文本自动定位到下拉框选中操作
2016/06/15 Javascript
Vue.js每天必学之内部响应式原理探究
2016/09/07 Javascript
详解Node.js:events事件模块
2016/11/24 Javascript
JavaScript使用正则表达式获取全部分组内容的方法示例
2017/01/17 Javascript
jquery学习笔记之无new构建详解
2017/12/07 jQuery
layer弹出层父子页面事件相互调用方法
2018/08/17 Javascript
vue 中引用gojs绘制E-R图的方法示例
2018/08/24 Javascript
Angularjs之ngModel中的值验证绑定方法
2018/09/13 Javascript
Vue商品控件与购物车联动效果的实例代码
2019/07/21 Javascript
vue 实现滚动到底部翻页效果(pc端)
2019/07/31 Javascript
深入浅析golang zap 日志库使用(含文件切割、分级别存储和全局使用等)
2020/02/19 Javascript
JavaScript实现点击图片换背景
2020/11/20 Javascript
Python 爬虫的工具列表大全
2016/01/31 Python
利用Python自带PIL库扩展图片大小给图片加文字描述的方法示例
2017/08/08 Python
十分钟利用Python制作属于你自己的个性logo
2018/05/07 Python
解决pycharm回车之后不能换行或不能缩进的问题
2019/01/16 Python
pandas dataframe的合并实现(append, merge, concat)
2019/06/24 Python
python脚本调用iftop 统计业务应用流量的思路详解
2019/10/11 Python
使用Python制作一盏 3D 花灯喜迎元宵佳节
2021/02/26 Python
css3一个简易的 LED 数字时钟实现方法
2020/01/15 HTML / CSS
简历的自荐信
2013/12/19 职场文书
公司会议策划方案
2014/05/17 职场文书
升学宴演讲稿
2014/09/01 职场文书
MySQL入门命令之函数-单行函数-流程控制函数
2021/04/05 MySQL
如何理解及使用Python闭包
2021/06/01 Python
JS前端可扩展的低代码UI框架Sunmao使用详解
2022/07/23 Javascript
MySQL 原理优化之Group By的优化技巧
2022/08/14 MySQL