【发布时间】:2016-05-27 14:06:32
【问题描述】:
这是一个两部分的问题。
我已经为包含我所有共享 React 组件的特定文件设置了一个名为 controls 的 Webpack 别名。这个文件只是一个 index.js 文件,它导入所有需要的组件(大约 30 个共享组件),然后像这样导出它们:
export { Button, Tabs, ProgressBar, Carousel, … }
组件来自不同的地方(图书馆、我的等)。我对导入的理解是,如果我写
import { Button } from ‘controls';
在我想要使用Button 的项目中的任何地方,只有Button 应该被拉入我的依赖关系树 - 而不是从“controls/index.js”的每个导出。
第一个问题:我对导入/导出方式的理解是否准确?
现在的问题是:所有组件,无论它们是否在特定包中使用,都被拉入每个包中。我很确定这是因为我的 Webpack 别名而发生的。
第二个问题:任何人对我如何仍然可以在一行中干净地导入多个共享组件有任何建议,例如
import { Button, Tabs, InitialsAvatar } from 'controls';
但没有将我的所有控件(也称为共享 React 组件)拉到依赖关系树中?
我玩过 Webpack 的 moduleDirectores 和 root,但是这些不允许我在一行中导入多个组件,也不允许我使用单个 index.js 文件来容纳我的所有共享组件。
【问题讨论】:
-
webpack v1 不做摇树,如果你是这么想的话。
-
@FelixKling 好的,所以问题至少部分(如果不是全部)与 Webpack 1 相关,但是 ES6 的导入/导出是否具有本机行为 only导入所需的模块切片,或者行为完全取决于您的模块构建器(webpack 1、webpack 2、systemjs 等)
-
这取决于模块捆绑器。 ES6 期望在导入任何导出时评估整个模块。
标签: reactjs ecmascript-6 webpack