2017-11-11 249 views
1

我一直在玩webpacknpm注册表。我创建了我的own little project.,我发布到npm注册表。一切似乎都很好,但有一件事让我担心。使用webpack作为React npm包的构建工具

由webpack构建的文件(lib/index.js)包含近2k行代码,而我的库非常小。我看到它包含两个依赖关系,我使用的是prop-typesdetect-browser。他们制作大部分代码。 在下载这两个库并在测试项目中使用它们之后悬停,我希望它们以某种方式被树形或类似的东西重复地删除,但是我的包的大小仍然相同。

基本上,我所问的只是:我的图书馆是否包含比必要的代码更多的代码?这对我来说似乎是这样。

enter image description here

我也试着加装prop-typesdetect-browser的测试项目,看是否集束大小将保持不变。降低我的库的大小仍然是一样的,捆绑的大小增加了(我预计冗余库将被删除或某物)。

enter image description here

回答

1

您是如何生成依赖关系图的?

顺便说一下,您的包裹看起来很好,除了您的包裹分布式代码都取决于您的包裹(prop-typesdetect-browser)。

为了避免你应该在你的webpack配置文件中标记为external这些库。像:

externals: { 
    react: 'react', 
    prop-types: 'prop-types', 
    detect-browser: 'detect-browser', 
} 

只是最后的(个人)注:给Rollup尝试捆绑存储库。 :)

+0

我用webpack捆绑分析器的依赖关系图。为什么像'react-bootstrap'这样的库只有'react'和'react-dom'标记为externals? ReactBootstrap也使用'prop-types'和其他库作为它们的依赖关系。顺便说一句,你的片段是无效的;) – Tomasz

+0

react-bootstrap有一个相当复杂的[构建设置](https://github.com/react-bootstrap/react-bootstrap/tree/master/tools)。我不知道那里发生了什么! –