我想使用保存在父目录中的共享节点模块。我有以下文件夹结构:
我必须使用webpack创建包并上传到aws-lamda
。但是webpack正在寻找节点模块。但我收到以下错误:
Overriding the webpack directory in serverless-webpack since it uses v1 version of webpack...
cp: cannot stat 'node_modules/webpack': No such file or directory
如何让webpack.config指向父目录中的node_modules?
答案 0 :(得分:0)
如果您阅读了NodeJS需要文档,则强烈建议您使用本地node_modules文件夹,即使您的软件包需要具有相同的依赖项。
https://nodejs.org/api/modules.html#modules_loading_from_node_modules_folders
或者您可以使用NODE_PATH
,请注意,要求首先查看本地node_modules
,然后开始查看其他文件夹,然后尝试删除本地node_modules
如果NODE_PATH环境变量设置为以冒号分隔的绝对路径列表,则Node.js将搜索这些路径以查找其他地方未找到的模块。 (注意:在Windows上,NODE_PATH由分号而不是冒号分隔。)
由于webpack公开了许多模块解析选项https://webpack.github.io/docs/resolving.html
解析模块路径 对于解析模块,Resolve首先从Webpack的上下文目录中收集模块的所有搜索目录。此过程类似于node.js解析过程,但搜索目录可使用配置选项resolve.modulesDirectories进行配置。除此之外,配置选项resolve.root中的目录是前置的,配置选项resolve.fallback中的目录也会附加。