typescript配置node開發環境


1、配置ts開發node.js后台,需要的依賴有

npm i @types/node --save-d
npm i ts-node --save-d
npm i typescript --save-d

需要全局安裝一個重要依賴,實現開發環境熱更新

npm i nodemon -g

2、初始化tsconfig.json配置

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "moduleResolution": "node", "lib": ["dom", "es2015"],
    "allowSyntheticDefaultImports": true,
    "removeComments": true,    
    "resolveJsonModule": true,
  },
  "exclude": ["node_modules"]
}

其他的可以按需要添加

3、添加nodemon.json配置

{
  "restartable": "rs",
  "ignore": [".git", "node_modules/**", "dist"],
  "verbose": true,
  "execMap": {
    "": "node",
    "js": "node --harmony"
  },
  "events": {
    "start": "",
    "crash": "",
    "exit": "",
    "restart": ""
  },
  "ext": "js json ts tsx",
  "watch": ["./**"],
  "env": {
    "NODE_ENV": "development",
    "PORT": "3002"
  },
  "legacy-watch": false
}

解讀以上配置:

restartable:重啟的命令,默認是 rs ,可以改成你自己喜歡的字符串。當用 nodemon 啟動應用時,可以直接鍵入 rs 直接重啟服務。除了字符串值外,還可以設置 false 值,這個值的意思是當 nodemon 影響了你自己的終端命令時,設置為 false 則不會在 nodemon 運行期間監聽 rs 的重啟命令。

ignore:忽略的文件后綴名或者文件夾,文件路徑的書寫用相對於 nodemon.json 所在位置的相對路徑,下同。nodemon 會默認忽略一些文件,默認忽略的文件有:.git, node_modules, bower_components, .sass-cache,如果這些文件想要加入監控,需要重寫默認忽略參數字段 ignoreRoot,比如加入:"ignoreRoot": [".git", "bower_components", ".sass-cache"],然后在 watch 中將 node_modules 文件路徑加入監控,那么 node_modules 內的文件也加入了監控了

verbose:true 表示輸出詳細啟動與重啟信息,如下圖

 

 false 表示不輸出這些運行信息,如下圖:

 

 execMap:運行服務的后綴名和對應的運行命令,"js": "node --harmony" 表示用 nodemon 代替 node  --harmony 運行 js 后綴文件;"" 指 www 這些沒有后綴名的文件;默認的 defaults.js 配置文件會識別一些文件:py: 'python',rb: 'ruby'。

events:這個字段表示 nodemon 運行到某些狀態時的一些觸發事件,總共有五個狀態:

  • start - 子進程(即監控的應用)啟動

  • crash - 子進程崩潰,不會觸發 exit

  • exit - 子進程完全退出,不是非正常的崩潰

  • restart - 子進程重啟

  • config:update - nodemon 的 config 文件改變

狀態后面可以帶標准輸入輸出語句,比如 mac 系統下設置: "start": "echo 'app start'",那么啟動應用時會輸出 app start 信息,其他類似命令如 ls,ps 等等標准命令都可以在這里定義。除此之外,也可以寫js來監控。

watch:監控的文件夾路徑或者文件路徑。

env:運行環境 development 是開發環境,production 是生產環境。port 是端口號。

ext:監控指定后綴名的文件,用空格間隔。默認監控的后綴文件:.js, .coffee, .litcoffee, .json。但是對於沒有文件后綴的文件,比如 www 文件,我暫時找不到怎么用 nodemon 去監控,就算在 watch 中包含了,nodemon 也會忽略掉。

legacy-watch:nodemon 使用 Chokidar 作為底層監控系統,但是如果監控失效,或者提示沒有需要監控的文件時,就需要使用輪詢模式(polling mode)

4、配置package.json

  "scripts": {
    "start": "nodemon [--watch src/] -e ts,tsx --exec ts-node ./src/main.ts",  //如果配置了nodemon.js中的文件,那么[]中的配置可以忽略
    "build": "tsc ./src/main.ts --outFile ./dist/main.js --module amd",
    "check": "tsc -w"
  }

start => 表示啟動開發模式 意思是監聽文件增加tstsx兩種文件類型,使用ts-node運行main.ts文件

build => 開發完成后進行構建 tsc 后面是入口文件, --outFile表示 輸出編譯后的文件地址   --module 表示采用amd模式編譯,也可以是commonjs, system等,配置如tsconfig里的module配置

check => 檢查ts的語法


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM