Dockers 部署Nodejs環境的ts 專案遇到的問題

杜文龙發表於2024-07-27

Dockers 部署Nodejs環境的ts 專案遇到的問題

由於不熟悉TS和nodejs所以過程比較曲折。webpack.config\tsconfig.json\package.json\是幾個比較關鍵的檔案。細節可以去看詳細文件,這裡不展開講;

主要是缺失了start.sh檔案和執行npm run build 的時候報錯問題;

遇到報錯時,請用最新的AI,修復所有錯誤;

例如這個報錯

node_modules/@types/socket.io/index.d.ts:458:44 - error TS2724: '"C:/Demo/datachannel/node_modules/engine.io/build/engine.io"' has no exported member named 'ServerAttachOptions'. Did you mean 'AttachOptions'?

458     interface ServerOptions extends engine.ServerAttachOptions {
                                               ~~~~~~~~~~~~~~~~~~~


Found 1 error in node_modules/@types/socket.io/index.d.ts:458

對照GPT的反饋執行(先不要執行,只是示例)

npm install @types/socket.io@latest engine.io@latest

從新開始一步步修復

npm install typescript@latest --save-dev

npm install @types/express-serve-static-core@latest --save-dev

npm update

npm install @types/socket.io@latest engine.io@latest

Package.json 檔案比較重要

"scripts": {

"start": "ts-node server.ts",

"build": "tsc",

"pack": "webpack"

},

我移除了build相關的內容。僅編譯在當前目錄執行npm run build

在當前目錄新增start.sh檔案,內容如下:

rm -f nodejs1.tar
tar -cf nodejs1.tar --recursion --exclude package.sh --exclude node_modules --exclude .git *

然後進入wsl系統進入start.sh所在目錄

sh start.sh 執行後去就可以把nodejs 上傳到docker裡面。然後docker 在執行對應的指令碼。

相關文章