結論 Dockerのマルチステージビルドを利用すると楽に実現できる 効果 イメージサイズの削減 環境の分離 アプリケーションのビルドと実行がそれぞれ異なる環境で行われる 差分 マルチステージビルド導入前 { ... "scripts": { "build": "tsc", "start": "node dist/index.js", "dev": "nodemon" }, ... "dependencies": { "express": "^4.18.2", "typescript": "^5.1.6", "@types/express": "^4.17.17" }, "devDependencies": { "nodemon": "^3.0.1", "ts-node-dev": "^2.0.0" } }
![【npm】本番依存からtypescript関連のパッケージを排除する ~Docker編~ - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/6b6aac639d0c381ea6d09e49b3f7c87149a1507a/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9JUUzJTgwJTkwbnBtJUUzJTgwJTkxJUU2JTlDJUFDJUU3JTk1JUFBJUU0JUJFJTlEJUU1JUFEJTk4JUUzJTgxJThCJUUzJTgyJTg5dHlwZXNjcmlwdCVFOSU5NiVBMiVFOSU4MCVBMyVFMyU4MSVBRSVFMyU4MyU5MSVFMyU4MyU4MyVFMyU4MiVCMSVFMyU4MyVCQyVFMyU4MiVCOCVFMyU4MiU5MiVFNiU4RSU5MiVFOSU5OSVBNCVFMyU4MSU5OSVFMyU4MiU4QiUyMH5Eb2NrZXIlRTclQjclQTh-JnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LWNsaXA9ZWxsaXBzaXMmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz1hMTUyZmZmYzEyNDczNTBkYWJkMDY0YWJlYjVkODc4OQ%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTcxNiZ0eHQ9JTQwa3Vkb21hJTIwaW4lMjAlRTYlQTAlQUElRTUlQkMlOEYlRTQlQkMlOUElRTclQTQlQkUlRTMlODIlQTIlRTMlODIlQTQlRTMlODIlQjklRTMlODIlQkYlRTMlODIlQTQlRTMlODMlQUImdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zMiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTg5OGZhOGMyZmE3OTVlMjIzN2U1YmY0NWQzMzYzYTU3%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3Dfcc255c46855168a566a5cb461b4d63c)