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 在執行對應的指令碼。