使用nodejs?+?koa?+?typescript?集成和自動重啟的問題
版本說明
Node.js: 16.13.1
創(chuàng)建項目
創(chuàng)建如下目錄結構
project ├── src │ └── server.ts ├── package.json └── tsconfig.json
package.json 可以使用 yarn init -y 生成
tsconfig.json 可以使用 tsc --init 生成(需要全局或在項目中安裝 typescript 包才可以使用 tsc 命令)
安裝依賴
注意:
@tsconfig/node16包需要根據(jù)Node.js的版本變化,我電腦上安裝的是16.x.x的版本,所以用的是@tsconfig/node16,具體看 tsconfig/bases 中的說明,當然也可以完全不用安裝這個包,這個包優(yōu)點是公用性和主流推薦配置typescript如果已經(jīng)全局安裝過了,就從下面的命令中移除它- concurrently 是一個并發(fā)執(zhí)行多個命令的工具包
- nodemon 是一個監(jiān)聽文件變化自動重啟程序的工具包
yarn add koa yarn add typescript @tsconfig/node16 @types/node @types/koa concurrently nodemon -D
填充內(nèi)容
src/server.ts
import Koa from 'koa';
const server: Koa = new Koa();
const port: number = 3000;
server.use((ctx: Koa.DefaultContext) => {
ctx.body = 'hi koa';
});
server.listen(port, () => {
console.log(`Node.js v${process.versions.node}`);
});
tsconfig.json
注意:extends 字段的值根據(jù)你安裝的包名 @tsconfig/node** 替換
{
"extends": "@tsconfig/node16/tsconfig.json",
"compilerOptions": {
"baseUrl": ".",
"rootDir": "src",
"outDir": "dist",
"noImplicitAny": true,
},
"include": [
"src/**/*"
]
}
package.json
"scripts": {
"build-ts": "tsc",
"build": "yarn build-ts",
"debug": "yarn build && yarn watch-debug",
"serve-debug": "nodemon --inspect dist/server.js",
"serve": "node dist/server.js",
"start": "yarn serve",
"watch-debug": "concurrently -k -p \"[{name}]\" -n \"TypeScript,Node\" -c \"yellow.bold,cyan.bold,green.bold\" \"npm:watch-ts\" \"npm:serve-debug\"",
"watch-node": "nodemon dist/server.js",
"watch-ts": "tsc -w",
"watch": "concurrently -k -p \"[{name}]\" -n \"TypeScript,Node\" -c \"yellow.bold,cyan.bold,green.bold\" \"npm:watch-ts\" \"npm:watch-node\""
}
運行
我們的所有源碼在 src 目錄下,tsc 編譯后的 js 文件在 dist 目錄下,這是在 tsconfig.json 文件中指定的路徑
本地開發(fā):如果沒有 dist 目錄需要先執(zhí)行 yarn build 去編譯生成,然后再執(zhí)行 yarn watch
部署生產(chǎn):順序執(zhí)行 yarn build、yarn serve 或 yarn start(serve 和 start 是相同的命令)
參考資料
microsoft/TypeScript-Node-Starter
到此這篇關于nodejs?+?koa?+?typescript?集成和自動重啟的文章就介紹到這了,更多相關nodejs??koa??typescript內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
詳解Nodejs get獲取遠程服務器接口數(shù)據(jù)
這篇文章主要介紹了Nodejs get獲取遠程服務器接口數(shù)據(jù),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-03-03
Node.js多文件Stream合并,串行和并發(fā)兩種模式的實現(xiàn)方式
這篇文章主要介紹了Node.js多文件Stream合并,串行和并發(fā)兩種模式的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-10-10
淺談如何通過node.js對數(shù)據(jù)進行MD5加密
本篇文章將主要針對于在NODE.JS中如何對數(shù)據(jù)進行MD5加密,MD5是一種常用的哈希算法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-05-05

