首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Webpack 4中使用本地模块可以多次绑定相同的依赖项。

在Webpack 4中使用本地模块可以多次绑定相同的依赖项。
EN

Stack Overflow用户
提问于 2018-05-03 21:15:24
回答 1查看 1.2K关注 0票数 0

我试图找到一种在npm中使用本地模块的好方法,或者一种构造大型应用程序的方法,以便将其打包成模块,这些模块可能在单独的存储库中,也可能不在存储库中。

每个本地模块都有自己的package.json和安装的依赖项。

我的要求是这些模块是用ES6编写的,并且只作为正在构建的主要项目的一部分进行编译(所以我没有很多依赖项是独立地不断构建的)。

项目结构

代码语言:javascript
复制
/root
  /main-module 
    ... main js files <- entry point
    webpack.config.js
    package.json
  /module-1
    ... module 1 js files
    package.json
  /module-2
    ... module 2 js files
    package.json
  /module-3
    ... module 3 js files
    package.json

我目前正在通过在我的package.json中指定一个本地文件来研究如何使用本地模块,如下所示:

代码语言:javascript
复制
...
"dependencies": {
  "lodash": "^4.17.10",
  "module-1": "../module-1",
  "module-2": "../module-2",
  "module-3": "../module-3",
  "normalize.css": "^8.0.0"
}
...

您可以在这里看到整个项目:https://github.com/SamStonehouse/webpack-local-modules-test

我使用webpack与babel-加载程序,它不需要任何额外的设置,以使用这种形式,甚至观察模块文件的变化和重建时,他们是完整的,这是惊人的。

问题:一旦这已经构建了房源包含了4次以上的构建包,每一个模块需要它,即使他们都需要相同的版本和所有的源代码是在同一时间编译。

  • 我试过使用splitChunkPlugin,但没有用
  • 我尝试过在本地模块中将lodash设置为一个devDependency (这是我不想做的事情,但无论如何都不起作用)

有人有办法解决这个问题吗?

或以类似方式捆绑本地模块的另一种方式。

EN

回答 1

Stack Overflow用户

发布于 2018-05-03 21:18:48

更改每个模块,使其成为对等依赖而不是直接依赖项。因此,在package.json文件中,更改以下内容:

代码语言:javascript
复制
  "dependencies": {
    "lodash": "^4.17.5"
  }

至:

代码语言:javascript
复制
  "peerDependencies": {
    "lodash": "^4.17.5"
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50163956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档