首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找不到模组“木偶师”

找不到模组“木偶师”
EN

Stack Overflow用户
提问于 2018-12-13 15:16:40
回答 5查看 38.6K关注 0票数 12

在AWS /NodeJS运行时,我尝试从绝对路径(/opt/nodejs/node_modules/puppeteer)导入。

源在本地运行良好,但是,一旦与webpack/无服务器的webpack绑定并在AWS中运行,require('puppeteer')将生成:

代码语言:javascript
复制
{"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"]}

我查过了:

  • AWS层安装在/opt上。
  • 路径/opt/nodejs/node_modules/puppeteer确实存在。
  • NODE_PATH正确地包括/opt/nodejs/node_modules
EN

回答 5

Stack Overflow用户

发布于 2018-12-13 15:24:09

在将您的zip上传到亚马逊之前,您必须安装带有save标志的模块:

代码语言:javascript
复制
npm i puppeteer --save
票数 20
EN

Stack Overflow用户

发布于 2018-12-13 23:35:16

npm i --save puppeteer会导致一个太大的包。(Lambdas最多50 Max)

因此,取而代之的是,木偶技师安装了npm i --save-dev puppeteer --ignore-scripts。(忽略脚本以防止安装铬。)serverless-webpack插件必须被告知在其包装中忽略木偶师。(否则木偶师会把包裹弄得臃肿的。)

木偶机模块被放置在一个层中(在问题中提到的文件夹结构中),require('puppeteer')现在可以工作了。

票数 12
EN

Stack Overflow用户

发布于 2021-01-31 19:50:03

尝试通过强制环境变量$NODE_PATH来运行脚本。例如:

代码语言:javascript
复制
NODE_PATH=/opt/nodejs/node_modules /path/to/bin/node your-file.js

由于一个特定的原因,我不得不在不影响当前安装的情况下从源代码构建一个节点版本,这个解决方案对我来说是可行的。

我要根据下面的问题here来解决这个问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53764902

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档