从零使用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 相关文章推荐
js滚动条多种样式,推荐
Feb 05 Javascript
JavaScript实现页面滚动图片加载(仿lazyload效果)
Jul 22 Javascript
js调用webservice中的方法实现思路及代码
Feb 25 Javascript
js获取系统的根路径实现介绍
Sep 08 Javascript
Jquery使用Firefox FireBug插件调试Ajax步骤讲解
Dec 02 Javascript
jquery实现的图片点击滚动效果
Apr 29 Javascript
jquery插件Jplayer使用方法简析
Apr 22 Javascript
Vue实现自带的过滤器实例
Mar 09 Javascript
Node.js 使用AngularJS的方法示例
May 11 Javascript
如何解决vue2.0下IE浏览器白屏问题
Sep 13 Javascript
Vue.js中的高级面试题及答案
Jan 13 Javascript
Node.js API详解之 Error模块用法实例分析
May 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
phpmyadmin安装时提示:Warning: require_once(./libraries/common.inc.php)错误解决办法
2011/08/18 PHP
PHP清除缓存的几种方法总结
2017/09/12 PHP
PHP操作Redis数据库常用方法示例
2018/08/25 PHP
为Plesk PHP7启用Oracle OCI8扩展方法总结
2019/03/29 PHP
Firefox 无法获取cssRules 的解决办法
2006/10/11 Javascript
List Installed Software Features
2007/06/11 Javascript
lib.utf.js
2007/08/21 Javascript
js正确获取元素样式详解
2009/08/07 Javascript
jQuery 菜单随滚条改为以定位方式(固定要浏览器顶部)
2012/05/24 Javascript
json数据的列循环示例
2013/09/06 Javascript
javascript中通过arguments参数伪装方法重载
2014/10/08 Javascript
js中的json对象详细介绍
2014/10/29 Javascript
javascript如何写热点图
2015/12/08 Javascript
BootStrap Typeahead自动补全插件实例代码
2016/08/10 Javascript
深入理解bootstrap框架之入门准备
2016/10/09 Javascript
Angular2 多级注入器详解及实例
2016/10/30 Javascript
Express与NodeJs创建服务器的两种方法
2017/02/06 NodeJs
JS实现上传图片的三种方法并实现预览图片功能
2017/07/14 Javascript
彻底搞懂JavaScript中的apply和call方法(必看)
2017/09/18 Javascript
前端常见跨域解决方案(全)
2017/09/19 Javascript
Angular服务Request异步请求的实例讲解
2018/08/13 Javascript
Vue项目中数据的深度监听或对象属性的监听实例
2020/07/17 Javascript
Python多线程编程(七):使用Condition实现复杂同步
2015/04/05 Python
对TensorFlow的assign赋值用法详解
2018/07/30 Python
python实现简易数码时钟
2021/02/19 Python
pandas dataframe添加表格框线输出的方法
2019/02/08 Python
在PyTorch中使用标签平滑正则化的问题
2020/04/03 Python
Python web如何在IIS发布应用过程解析
2020/05/27 Python
一款利用html5和css3动画排列人物头像的实例演示
2014/12/05 HTML / CSS
两道JAVA笔试题
2016/09/14 面试题
五一服装活动方案
2014/01/11 职场文书
个人委托书
2014/07/31 职场文书
新闻学专业职业生涯规划范文:我的人生我做主
2014/09/12 职场文书
教师批评与自我批评总结
2014/10/16 职场文书
2016年社区“6.26”禁毒日宣传活动总结
2016/04/05 职场文书
pytorch 梯度NAN异常值的解决方案
2021/06/05 Python