如何在子目录中包含nodejs模块

How to include nodejs modules in sub directory

我有一个类似这样的 AWS Lambda 层目录结构。

main > nodejs > node_modules

我有一个 test.js 文件用于在上传到 AWS 之前测试功能。是否可以将我的 test.js 文件放在 Main 文件夹而不是 nodejs 文件夹中,并且仍然让它在 nodejs 文件夹中获取模块?

我问是因为您压缩了 nodejs 文件夹以便为 AWS Lambda 层上传,但我不想将我的 test.js 文件包含在存档中。

更新: 下面的回答帮助我找到了解决方案。您只需在 require 中输入模块的完整路径。

require('./nodejs/node_modules/my_module');

一种方法是加载脚本并使用 --eval 标志执行它:

cd nodejs
node --eval "$(cat ../test.js)"

当你是运行 test.js

时设置NODE_PATH环境变量

NODE_PATH='yourFolder'/node_modules

source