如何使webpack在父目录中使用共享节点模块

时间:2017-04-17 10:02:13

标签: node.js webpack serverless-framework

我想使用保存在父目录中的共享节点模块。我有以下文件夹结构:

  • 父目录
    • node_modules
    • 公司
      • serverless.yml
      • handler.js
      • webpack.config

我必须使用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?

1 个答案:

答案 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中的目录也会附加。