Add express to dependencies and improve Dockerfile

Added express as a production dependency in package.json and updated the Dockerfile to install dependencies more efficiently using npm ci when package-lock.json is present. This streamlines the build process and ensures express is available in production environments.
This commit is contained in:
xixu-me committed 2025-08-19 20:41:19 +08:00
1 parent 5281b33bcc
commit 0a9e455cf7
2 files changed
+39 -38

No files matched your search

+4 -4
View File
@@ -4,11 +4,11 @@ FROM node:20-alpine
# Set the working directory inside the container
WORKDIR /app
# Copy package.json first to leverage Docker cache for dependencies
COPY package.json ./
# Copy package.json and package-lock.json first to leverage Docker cache for dependencies
COPY package.json package-lock.json* ./
# Install dependencies including express for standalone server
RUN npm ci --only=production && npm install express
# Install dependencies - use npm ci for reproducible builds if package-lock.json exists, otherwise npm install
RUN if [ -f package-lock.json ]; then npm ci --only=production; else npm install --only=production; fi
# Copy the rest of the application code
COPY . .
+35 -34
View File
@@ -1,36 +1,37 @@
{
"dependencies": {
"xget": "file:"
},
"devDependencies": {
"@cloudflare/vitest-pool-workers": "^0.8.36",
"@cloudflare/workers-types": "^4.20250724.0",
"eslint": "^9.31.0",
"prettier": "^3.6.2",
"vitest": "^3.1.4",
"wrangler": "^4.26.0"
},
"name": "xget",
"private": false,
"scripts": {
"deploy": "wrangler deploy",
"deploy:vercel": "vercel --prod",
"dev": "wrangler dev",
"dev:vercel": "vercel dev",
"format": "prettier --write src/ test/ *.js *.json *.md",
"format:check": "prettier --check src/ test/ *.js *.json *.md",
"lint": "eslint src/ test/",
"lint:fix": "eslint src/ test/ --fix",
"preview:vercel": "vercel",
"start": "wrangler dev",
"start:vercel": "vercel dev",
"test": "vitest",
"test:coverage": "vitest run --coverage",
"test:run": "vitest run",
"test:ui": "vitest --ui",
"test:watch": "vitest --watch",
"type-check": "tsc --noEmit"
},
"type": "module",
"version": "1.0.0"
"dependencies": {
"express": "^4.19.2",
"xget": "file:"
},
"devDependencies": {
"@cloudflare/vitest-pool-workers": "^0.8.36",
"@cloudflare/workers-types": "^4.20250724.0",
"eslint": "^9.31.0",
"prettier": "^3.6.2",
"vitest": "^3.1.4",
"wrangler": "^4.26.0"
},
"name": "xget",
"private": false,
"scripts": {
"deploy": "wrangler deploy",
"deploy:vercel": "vercel --prod",
"dev": "wrangler dev",
"dev:vercel": "vercel dev",
"format": "prettier --write src/ test/ *.js *.json *.md",
"format:check": "prettier --check src/ test/ *.js *.json *.md",
"lint": "eslint src/ test/",
"lint:fix": "eslint src/ test/ --fix",
"preview:vercel": "vercel",
"start": "wrangler dev",
"start:vercel": "vercel dev",
"test": "vitest",
"test:coverage": "vitest run --coverage",
"test:run": "vitest run",
"test:ui": "vitest --ui",
"test:watch": "vitest --watch",
"type-check": "tsc --noEmit"
},
"type": "module",
"version": "1.0.0"
}