Create your Link in Bio for Bluesky

サーバーをesbuildでビルド

+27 -2
+1
.gitignore
··· 1 1 node_modules/ 2 + dist/ 2 3 build/ 3 4 .env 4 5
+5 -2
package.json
··· 9 9 "scripts": { 10 10 "_eslint": "eslint --cache --cache-location ./node_modules/.cache/eslint .", 11 11 "all": "run-s build format test", 12 - "build": "pnpm typecheck && remix vite:build", 12 + "build": "pnpm -s typecheck && run-p -s build:*", 13 + "build:remix": "remix vite:build", 14 + "build:server": "node ./scripts/build-server.js", 13 15 "dev": "pnpm setup-dev && pnpm run-p -l dev:*", 14 16 "dev:atproto": "cd atproto && make run-dev-env", 15 17 "dev:prisma": "prisma studio --browser none", ··· 20 22 "postinstall": "./scripts/postinstall.sh", 21 23 "prepare": "husky", 22 24 "setup-dev": "./scripts/setup-dev.sh", 23 - "start": "NODE_ENV=production tsx ./app/server.ts", 25 + "start": "NODE_ENV=production node ./dist/server.js", 24 26 "start:e2e": "pnpm run-p -l dev:atproto start:local", 25 27 "start:local": "wait-on http-get://localhost:2583 && NODE_ENV=production tsx --env-file .env ./app/server.ts", 26 28 "test": "vitest run --coverage", ··· 66 68 "@vitest/coverage-v8": "^2.0.5", 67 69 "autoprefixer": "^10.4.20", 68 70 "daisyui": "^4.12.10", 71 + "esbuild": "^0.23.1", 69 72 "eslint": "^9.9.0", 70 73 "giget": "^1.2.3", 71 74 "husky": "^9.1.5",
+3
pnpm-lock.yaml
··· 120 120 daisyui: 121 121 specifier: ^4.12.10 122 122 version: 4.12.10(postcss@8.4.41) 123 + esbuild: 124 + specifier: ^0.23.1 125 + version: 0.23.1 123 126 eslint: 124 127 specifier: ^9.9.0 125 128 version: 9.9.0(jiti@1.21.6)
+18
scripts/build-server.js
··· 1 + import { build } from "esbuild"; 2 + import fs from "fs"; 3 + 4 + const pkg = JSON.parse(fs.readFileSync("./package.json", "utf-8")); 5 + 6 + build({ 7 + entryPoints: ["./app/server.ts"], 8 + bundle: true, 9 + platform: "node", 10 + format: "esm", 11 + outdir: "./dist", 12 + external: [ 13 + "lightningcss", // なぜか必要 14 + "../build/server/index.js", 15 + ...Object.keys(pkg.dependencies), 16 + ...Object.keys(pkg.devDependencies), 17 + ], 18 + });