从零使用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 相关文章推荐
跟随鼠标旋转的文字
Nov 30 Javascript
基于jquery的代码显示区域自动拉长效果
Dec 07 Javascript
构造函数+原型模式构造js自定义对象(最通用)
May 12 Javascript
js+html5实现可在手机上玩的拼图游戏
Jul 17 Javascript
基于javascript实现全国省市二级联动下拉选择菜单
Jan 28 Javascript
将jquery.qqFace.js表情转换成微信的字符码
Dec 01 jQuery
mpvue中配置vuex并持久化到本地Storage图文教程解析
Mar 15 Javascript
vue-auto-focus: 控制自动聚焦行为的 vue 指令方法
Aug 25 Javascript
vue页面切换过渡transition效果
Oct 08 Javascript
vue-router传递参数的几种方式实例详解
Nov 13 Javascript
Vue3项目打包后部署到服务器 请求不到后台接口解决方法
Feb 06 Javascript
JS自定义滚动条效果
Mar 13 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
苏联队长,苏联超人蝙蝠侠,这些登场的“山寨”英雄真的很严肃
2020/04/09 欧美动漫
PHP 编写大型网站问题集
2010/05/07 PHP
php中多维数组按指定value排序的实现代码
2014/08/19 PHP
Symfony2学习笔记之系统路由详解
2016/03/17 PHP
laravel 解决多库下的DB::transaction()事务失效问题
2019/10/21 PHP
用jQuery获取IE9下拉框默认值问题探讨
2013/07/22 Javascript
使用原生js写的一个简单slider
2014/04/29 Javascript
javascript实现下班倒计时效果的方法(可桌面通知)
2015/07/10 Javascript
JavaScript对象学习小结
2015/09/02 Javascript
jQuery Mobile 和 Kendo UI 的比较
2016/05/05 Javascript
javascript中Date对象应用之简易日历实现
2016/07/12 Javascript
浅析Javascript ES6新增值比较函数Object.is
2016/08/24 Javascript
Bootstrap简单表单显示学习笔记
2016/11/15 Javascript
Chart.js 轻量级HTML5图表绘制工具库(知识整理)
2018/05/22 Javascript
vue 基于element-ui 分页组件封装的实例代码
2018/12/10 Javascript
Python中针对函数处理的特殊方法
2014/03/06 Python
Python快速查找list中相同部分的方法
2018/06/27 Python
python框架中flask知识点总结
2018/08/17 Python
Python列表对象实现原理详解
2019/07/01 Python
如何用Python来搭建一个简单的推荐系统
2019/08/07 Python
tornado+celery的简单使用详解
2019/12/21 Python
如何理解python中数字列表
2020/05/29 Python
python实现文件+参数发送request的实例代码
2021/01/05 Python
SheIn沙特阿拉伯:女装在线
2020/03/23 全球购物
婚庆公司的创业计划书
2014/01/22 职场文书
高中学生干部学习的自我评价
2014/02/21 职场文书
幼儿园开学寄语
2014/04/03 职场文书
经贸日语专业个人求职信范文
2014/04/29 职场文书
公安局负责人查摆问题及整改方案
2014/09/27 职场文书
优秀党员先进事迹材料
2014/12/18 职场文书
西安兵马俑导游词
2015/02/02 职场文书
2015年行政人事工作总结
2015/05/21 职场文书
幼儿园保育员随笔
2015/08/14 职场文书
小学体育课教学反思
2016/02/16 职场文书
html5移动端禁止长按图片保存的实现
2021/04/20 HTML / CSS
pytorch finetuning 自己的图片进行训练操作
2021/06/05 Python