/opt/nodejs/node_modules/puppeteer
)进行导入。
源代码在本地运行良好,但是一旦使用 Webpack/serverless-webpack 进行打包并在 AWS Lambda 中运行时,require('puppeteer')
的结果为:{"errorMessage":"Cannot find module 'puppeteer'","errorType":"Error","stackTrace":["webpackMissingModule (/var/task/src/render/handler.js:643:89)","/var/task/src/render/handler.js:643:173","next (native)","step (/var/task/src/render/handler.js:608:191)","/var/task/src/render/handler.js:608:361"]}
我已经检查过:
/opt
处已挂载AWS Lambda Layer。/opt/nodejs/node_modules/puppeteer
路径是存在的。NODE_PATH
正确包含了/opt/nodejs/node_modules
puppeteer-core
并将puppeteer
作为开发依赖项,然后根据您的环境传递可执行路径到browser.launch()
。Puppeteer-core 没有捆绑 Chromium,因此您可以安全地导入和使用它。基本的 Puppeteer 包将包括用于本地开发的 Chromium,但由于是开发依赖项,因此不会被捆绑。 - Dan