如何为本地引用的节点模块指定 node_modules 文件夹

How to specify node_modules folder for locally referenced node module

We need to specify node_modules folder for locally referenced node module that resides in an external folder relative to the current application folder.

我们有一个场景,我们在另一个客户端应用程序中引用外部公共模块的 js 文件,但是在最终构建中复制了两个引用的相同节点模块。我们尝试使用 webpack.optimize.DedupePlugin() 但没有成功。

目录结构如下:

  1. 我们在本地磁盘上有一个名为“common”的私有 npm 模块,然后我们有一个名为“app”的项目文件夹。
  2. 两个文件夹在目录结构中处于同一级别并且在同一根目录下。
  3. “app”本身是一个 npm 模块,并且有一个 package.json 文件和它自己的 node_modules 文件夹。 |—root |— common/node_modules |— app/node_modules 我们希望通过配置通过 npm 或 web pack 指定一种方式,让应用程序解析来自其指定路径 node_modules 的引用,而不是引用任何其他 node_modules 位置,包括公共模块中的位置。

您可以使用 npm link 或只是一个简单的 symlink。做这样的事情:

cd root/app (your app directory)
npm link ../common

cd root/app (your app directory)
ln -s ../common node_modules/common