使用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
填充內容
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內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
node.js報錯:Cannot find module ''ejs''的解決辦法
最近發(fā)現(xiàn)了node.js居然報錯了,錯誤提示為:Cannot find module 'ejs',后來找了找資料發(fā)現(xiàn)解決的方法其實很簡單,下面通過這篇文章來一起看看吧,希望對同樣遇到這個問題的朋友們能有所幫助。2016-12-12Docker平臺下NodeJs?Puppeteer實現(xiàn)html轉pdf過程示例
這篇文章主要為大家介紹了Docker平臺下NodeJs?Puppeteer實現(xiàn)html轉pdf過程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12輕松創(chuàng)建nodejs服務器(9):實現(xiàn)非阻塞操作
這篇文章主要介紹了輕松創(chuàng)建nodejs服務器(9):實現(xiàn)非阻塞操作,本系列文章會教你一步一步創(chuàng)建一個完整的服務器,要的朋友可以參考下2014-12-12Node.js中Express框架使用axios同步請求(async+await)實現(xiàn)方法
這篇文章主要介紹了Node.js中Express框架使用axios同步請求(async+await)實現(xiàn)方法,結合實例形式分析了express框架使用異步交互axios模塊實現(xiàn)同步請求的相關操作技巧與注意事項,需要的朋友可以參考下2023-04-04基于nodejs+express(4.x+)實現(xiàn)文件上傳功能
通過一段時間的查閱資料發(fā)現(xiàn)實現(xiàn)上傳的方式有:1.express中間件multer模塊2.connect-multiparty模塊(但現(xiàn)在 官方不推薦 )3.使用multiparty模塊實現(xiàn)4.使用formidable插件實現(xiàn),本文給大家介紹nodejs+express(4.x+)實現(xiàn)文件上傳功能,需要的朋友參考下2015-11-11