【发布时间】:2022-02-05 00:47:33
【问题描述】:
我正在尝试在 docker 容器中运行需要 puppeteer 的应用程序,但在运行 docker 容器时出现以下错误
/usr/src/app/index.js:1
import puppeteer from 'puppeteer';
^^^^^^^^^
SyntaxError: Unexpected identifier
at Module._compile (internal/modules/cjs/loader.js:723:23)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/
我的 Dockerfile:
FROM ubuntu
WORKDIR /usr/src/app
COPY . .
RUN apt-get update
RUN apt-get install -y imagemagick ghostscript nodejs
RUN apt-get install -y npm
RUN npm ci
CMD ["node","index.js"]
我正在 Windows 机器上开发此应用程序,该应用程序在 Windows 上运行良好,但由于某种原因,当 A)在 ubuntu vm 上运行应用程序或 B)在 docker 容器中运行应用程序时,我收到此错误
【问题讨论】:
-
检查你的 package-lock.json。看起来您在 Windows 机器上全局安装了 puppeteer。
-
Puppeteer 似乎确实存在于我的 package-lock.json 中。
npm i puppeteer似乎只是将已安装的版本从 13.1.2 更改为 13.1.3 -
@BrandonPina 尝试使用“npm update”,它应该更新 package-lock.json