配置TS + node 的開發環境

直接配置ts的開發環境仍是挺麻煩的,這裏我總結了一套開發模板,能夠在用的時候能夠考慮直接clone這個項目,
項目地址https://github.com/fish-node/...
以這個項目 爲基礎模板來開發就行。node

$ 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代碼,這無疑是很麻煩的。git

而ts-node則包裝了node,它能夠直接的運行ts代碼,使用起來很方便,它的官方倉庫在這裏 https://github.com/TypeStrong... ,基本用法請自行查看它的readme。github

我這裏就是把ts-node寫到package.json,你們在npm install以後,就能夠經過npm

$ npx ts-node src/index.ts

這種方式來運行ts代碼,很方便。json

而後咱們知道node中有個nodemon,能夠在開發時自動的重啓咱們的node程序,而在ts-node中,對應的就是ts-node-dev瀏覽器

$ npx ts-node-dev src/index.ts

示例代碼

在src目錄下,我寫了三個基本的ts代碼bash

  • 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... ,因此咱們仍是繼續使用commonjs規範。

而後rootDir就是咱們的源代碼目錄,outDir就是咱們的編譯後代碼的目錄。同時咱們設置了exclude這個選項,把咱們的測試文件排除在外。

相關文章
相關標籤/搜索