我正在尝试使用AWS lambda, node.js v18,层和架构:x86_64生成@sparticuz/chromium .
我得到错误:
运行时。ImportModuleError: Error: Cannot find module"@sparticuz/铬">
层:
{
"name": "chrome_layer",
"dependencies": {
"@sparticuz/chromium": "108.0.1",
"puppeteer-core": "18.0.5"
}
}
代码:
const chromium = require('@sparticuz/chromium')
const puppeteer = require('puppeteer-core')
const browser = await puppeteer.launch({
args: chromium.args,
executablePath: await chromium.executablePath,
})
我也遇到过类似的问题。在我的案例中,我试图使用AWS CDK部署Lambda,而没有单独的层。
创建NodejsFunction
时,在NodejsFunctionProps
中传递两个东西:
-
package-lock.json
文件:depsLockFilePath: 'src/your-lambda-path/package-lock.json',
-
确保
@sparticuz/chromium
模块不会作为单个文件捆绑,而是在node_modules
文件夹中传递:bundling.nodeModules: [ '@sparticuz/chromium', ],
这样可以安装Chromium的二进制文件。