Docker容器运行Vue项目时出现@rollup/rollup-linux-x64-gnu模块缺失错误
Docker运行Vue项目时Rollup依赖缺失问题
容器启动时出现如下错误:
frontend-1 | > frontend@0.0.0 dev frontend-1 | > vite frontend-1 | frontend-1 | /app/node_modules/rollup/dist/native.js:87 frontend-1 | throw new Error( frontend-1 | ^ frontend-1 | frontend-1 | Error: Cannot find module @rollup/rollup-linux-x64-gnu. npm has a bug related to optional dependencies. Please try `npm i` again after removing both package-lock.json and node_modules directory. frontend-1 | at requireWithFriendlyError (/app/node_modules/rollup/dist/native.js:87:9) frontend-1 | at Object.<anonymous> (/app/node_modules/rollup/dist/native.js:96:76) frontend-1 | ... 3 lines matching cause stack trace ... frontend-1 | at Module._load (node:internal/modules/cjs/loader:1028:12) frontend-1 | at cjsLoader (node:internal/modules/esm/translators:359:17) frontend-1 | at ModuleWrap.<anonymous> (node:internal/modules/esm/translators:308:7) frontend-1 | at ModuleJob.run (node:internal/modules/esm/module_job:218:25) frontend-1 | at async ModuleLoader.import (node:internal/modules/esm/loader:323:24) { frontend-1 | [cause]: Error: Cannot find module '@rollup/rollup-linux-x64-gnu' frontend-1 | Require stack: frontend-1 | - /app/node_modules/rollup/dist/native.js frontend-1 | at Module._resolveFilename (node:internal/modules/cjs/loader:1149:15) frontend-1 | at Module._load (node:internal/modules/cjs/loader:990:27) frontend-1 | at Module.require (node:internal/modules/cjs/loader:1237:19) frontend-1 | at require (node:internal/modules/helpers:176:18) frontend-1 | at requireWithFriendlyError (/app/node_modules/rollup/dist/native.js:69:10) frontend-1 | at Object.<anonymous> (/app/node_modules/rollup/dist/native.js:96:76) frontend-1 | at Module._compile (node:internal/modules/cjs/loader:1378:14) frontend-1 | at Module._extensions..js (node:internal/modules/cjs/loader:1437:10) frontend-1 | at Module.load (node:internal/modules/cjs/loader:1212:32) frontend-1 | at Module._load (node:internal/modules/cjs/loader:1028:12) { frontend-1 | code: 'MODULE_NOT_FOUND', frontend-1 | requireStack: [ '/app/node_modules/rollup/dist/native.js' ] frontend-1 | } frontend-1 | } frontend-1 | frontend-1 | Node.js v21.6.2 Gracefully stopping... (press
已尝试以下三种方案,均未解决问题:
- 在package.json中将依赖添加至optionalDependencies:
"optionalDependencies": { "@rollup/rollup-linux-x64-gnu": "4.9.5" },
- 添加overrides配置:
"overrides": { "vite": { "rollup": "npm:@rollup/wasm-node" } }
- 在Dockerfile中更换不同Node版本
每次运行docker-compose都会触发相同错误。
前端项目Dockerfile配置
FROM node:lts-alpine WORKDIR /app COPY package*.json ./ RUN npm install COPY . . EXPOSE 5173 CMD ["npm", "run", "dev"]
后端项目目录下的docker-compose.yml配置
version: "3.9" services: webquarto: container_name: webquarto image: webquarto:1.0.2 build: . ports: - "8000:8000" env_file: - .env depends_on: - db volumes: - ./:/var/www/html db: container_name: db image: postgres:12 ports: - "5432:5432" environment: POSTGRES_USER: POSTGRES_PASSWORD: POSTGRES_DB: volumes: - pgdata:/var/lib/postgresql/data frontend: build: context: ../frontend dockerfile: Dockerfile ports: - "5173:5173" volumes: - ../frontend:/app - ../node_modules:/frontend/node_modules depends_on: - webquarto volumes: pgdata: {}
内容的提问来源于stack exchange,提问作者Lucas Bello
相关产品推荐
相关产品推荐

