直接配置ts的开发环境还是挺麻烦的,这里我总结了一套开发模板,可以在用的时候可以考虑直接clone这个项目, 以这个项目为基础模板https://github.com/fish-node/template-node-ts 来开发就行。

$ tree
.
├── README.md
├── jest.config.js
├── package.json
├── src
│   ├── index.ts
│   ├── math.ts
│   └── server.ts
├── test
│   ├── math.test.ts
│   └── server.test.ts
├── tsconfig.json
└── tslint.json
复制代码

ts-node

因为ts是建立在js的基础之上的,但是node又不能直接运行ts代码,实际使用是往往需要使用tsc将ts代码编译成js代码,这无疑是很麻烦的。

而ts-node则包装了node,它可以直接的运行ts代码,使用起来很方便,它的官方仓库在这里 github.com/TypeStrong/… ,基本用法请自行查看它的readme。

我这里就是把ts-node写到package.json,大家在npm install之后,就可以通过

$ npx ts-node src/index.ts
复制代码

这种方式来运行ts代码,很方便。

然后我们知道node中有个nodemon,可以在开发时自动的重启我们的node程序,而在ts-node中,对应的就是ts-node-dev

$ npx ts-node-dev src/index.ts
复制代码

示例代码

在src目录下,我写了三个基本的ts代码

  • math.ts就是最基本的ts的用法
  • 然后server.js展示了如何使用ts编写一个http服务器
  • index.ts则展示了ts中的模块化的使用

测试框架

然后我使用Jest 作为测试框架,在test目录下展示了用Jest + Ts 编写我们的测试程序。 运行测试文件的话,可以使用

$ npm run test
复制代码

@types

@types/node @types/jest 是ts中类型声明文件,它可以给js编写的模块赋予类型系统,让我们享受类型系统的好处。

配置文件

  • .editorconfig是我们配置IDE的阅读配置文件
  • tslint.json使我们的代码检查配置文件 这个文件主要是继承了官方推荐的代码风格。不过为了调试方便,把'no-console'这个条件设置为false了

tsconfig.json

然后重点是我们的ts配置文件。

一般来说,json文件是不支持注释的,但是ts官方为了方便,对这个文件单独做了加强,使得我们可以使用注释,注释语法和js中的一样。

{"compilerOptions": {"target": "es2018","module": "commonjs","outDir": "./dist/","rootDir": "./src/","strict": true,"moduleResolution": "node","esModuleInterop": true,"experimentalDecorators": true},"exclude": ["./test"]
}
复制代码

其中的target就是编译后js代码的版本,因为我们是node环境,没必要考虑浏览器的兼容问题,所以大家还是尽量的使用更新的版本吧。

而module选项则是我们的模块管理机制,因为我们的ts-node目前还不指出es的模块管理机制,参考这个问题https://github.com/TypeStrong/ts-node/issues/313#issuecomment-343698812 ,所以我们还是继续使用commonjs规范。

然后rootDir就是我们的源代码目录,outDir就是我们的编译后代码的目录。同时我们设置了exclude这个选项,把我们的测试文件排除在外。

转载于:https://juejin.im/post/5d00bd35e51d45773e418a61

配置TS + node 的开发环境相关推荐

  1. 前端小白配置mac下node+vue开发环境的各种姿势

    背景:笔者(前端小白)之前mac环境下用的node 9.8.x版本,npm 6.13.4版本,昨天尝试ts,用vue-cli构建项目对时候,vscode给提示说node版本太低了,好,笔者听从前辈经验 ...

  2. 基于node.js开发环境下创建及开发vue.js项目的环境配置骤

    基于node.js开发环境下创建开发vue.js项目的环境配置骤如下: 步骤一:安装node.js,安装完后运行node -v命令检安装node的查版本,判断是否安装成功.Npm是node.js包管理 ...

  3. 计算机系统的搭建步骤,电脑搭建Node.js开发环境的操作教程[多图]

    电脑如何搭建Node.js开发环境?近日有用户询问怎么在Win7系统电脑上搭建Node.js开发环境,今天教程之家就给大家分享Node.js开发环境的搭建教程. 操作步骤: 1.下载Node.js官方 ...

  4. Ubuntu配置上位机Blackfin开发环境手记

    Ubuntu配置上位机Blackfin开发环境手记 -------- 本文档适合使用Ctrl+F 搜索关键字 -------------- -------- It's more convenient ...

  5. java opencv 开发环境_在IntelliJ IDEA 13中配置OpenCV的Java开发环境

    准备工作: 下载IDEA 13(这里以版本13为例,后面简称IDEA): 下载Java JDK(用于配置基本的Java开发环境): 下载OpenCV 2.4.9(这里以版本2.4.9为例,据这篇文章说 ...

  6. 手把手教你学node之搭建node.js开发环境

    搭建node.js开发环境 本文只针对在Linux或者Mac下面.至于使用 Windows 并坚持玩新技术的同学,我坚信他们一定有着过人的.甚至是不可告人的兼容性 bug 处理能力,所以这部分同学麻烦 ...

  7. vs code上配置tcl/tk语言开发环境

    vs code上配置tcl/tk语言开发环境 基础软件 Tcl语言编译器 Active Tcl 文本编辑器 Visual Studio Code 语法高亮.语法提示支持 安装Tcl语言支持插件: 配置 ...

  8. 配置Fiori for iOS开发环境

    写在前面 本文是Fiori for iOS系列文章的第三篇. SAP和苹果这两个IT大佬,在2017年联合推出了Fiori for iOS,让全球的开发者能在iOS平台上,方便地开发SAP企业应用. ...

  9. 配置OpenCV2和OpenCV3开发环境笔记

    配置OpenCV2和OpenCV3开发环境笔记 Date: 2016-01-19 Author: Kagula Environment: Visual Studio 2013 Update5, Ope ...

最新文章

  1. nodejs -- promise的返回
  2. excel图片变成代码_没错, Python杀死了Excel
  3. Java编程中写出好代码的建议(转发)
  4. Web MVC Rest 处理流程分析
  5. Microsoft .NET Pet Shop 4 架构与技术分析(转)
  6. Fleury (弗罗莱) 算法通俗解释
  7. 得到qq正在登录的qq号
  8. C# 系统应用之Cookie\Session基础知识及php读取Cookie\Session
  9. python小游戏代码_20行python代码的入门级小游戏
  10. 【Spring】Spring的AOP术语解释
  11. 计算机基础课作业答案,计算机应用基础课程作业及答案.doc
  12. linux是一个工程而不是理论
  13. 练习四十四:整数的排序
  14. 《Shell脚本学习指南》笔记--2011-12-17
  15. Red Giant Universe 3.0.2 for After Effects 破解版 Mac 红巨星宇宙特效插件包预设
  16. 信号完整性分析学习--16--传输线效应
  17. 项目范围管理:范围定义
  18. 2000坐标系xy坐标几位_2000国家大地坐标系
  19. 量化策略:如何利用自回归模型构建日内高频策略
  20. 赚享客系统模式app技术开发

热门文章

  1. 《资本说》如何帮助企业从“0”到“1”,看王波玩转投资攻略
  2. 在为时已晚前 阻止物联网安全威胁和攻击
  3. Swift类与OC类方法相互调用的
  4. 为Qt扩展QextSerialPort类
  5. 哥们,你侵权了,哥有权告你去!
  6. PowerPC VxWorks BSP分析7——image压缩
  7. sklearn API快速上手
  8. leetcode005 longest_palidrome
  9. C语言单链成绩表,【查找链表面试题】面试问题:C语言基于单链… - 看准网
  10. python免安装环境 linux_python如何打包脚本(库也一起打包),直接在linux环境运行,不需要安装库?...