微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

“找不到给定文件的模块根目录:\”/var/task/index.js\”AWS lambda libxmljs2-xsd webpack

如何解决“找不到给定文件的模块根目录:\”/var/task/index.js\”AWS lambda libxmljs2-xsd webpack

我使用 webpack 为 AWS lambda 捆绑代码,该代码按预期运行,除非我包含特定库:libxmljs2-xsd 和 lambda throws:

"errorType": "Error","errorMessage": "Could not find module root given file: \"/var/task/index.js\". Do you have a `package.json` file? ","stack": [
        "Error: Could not find module root given file: \"/var/task/index.js\". Do you have a `package.json` file? ","    at Function.getRoot (/var/task/index.js:5286:13)","    at bindings (/var/task/index.js:5157:32)","    at Object../node_modules/libxmljs2/lib/bindings.js (/var/task/index.js:7094:92)","    at __webpack_require__ (/var/task/index.js:16311:42)","    at Object../node_modules/libxmljs2/index.js (/var/task/index.js:7042:18)","    at Object../node_modules/libxmljs2-xsd/index.js (/var/task/index.js:6954:16)","    at Object../src/validateXML.js (/var/task/index.js:16099:13)","    at __webpack_require__ (/var/task/index.js:16311:42)"
    ]

我在 S/O 上阅读了另一个类似的问题,但对于这个问题,答案似乎不正确。

我实际上设法让它运行(这不是一个干净的答案,因此我没有作为答案包含在内)并且它仍然需要为其他遇到此问题的人回答。

它似乎需要任何仅包含 {} 的 package.json 就可以了,在 /dist 文件夹和来自节点模块的 2 个二进制文件中完整运行:

我的 /dist 文件夹现在看起来像:

/dist
   /someHandler
      index.js
   /anotherHandler
      /build
         node-libxml-xsd.node
         xmljs.node
      index.js
      package.json

node-libxml-xsd.node 二进制文件位于 node_modules/libxmljs2-xsd/build 中,xmljs.node 位于 node_modules/build/Release 中

所以它现在确实与变通解决方案一起运行,但我不确定为什么 webpack 没有正确捆绑这个模块

非常感谢任何帮助

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。