Webpack如何确定要在其包中包含哪些内容?

时间:2016-07-12 18:46:23

标签: reactjs webpack

假设我有一个具有以下结构的项目

/app
|_webpack.config.js
|_package.json
|_/npm_modules
| |_...
|_/client
  |_/misc
  | |_...
  |_/components
  | |_...
  |_index.jsx

webpack.config.js包含此

entry: ["./client/index.jsx"]

index.jsx加载所有这样的组件

var components = [];
var componentPaths = require.context("./components", false);
componentPaths.keys().forEach(function(path)  {
    components.push(componentPaths(path));
});

哪些文件将捆绑到生成的bundle.js中? 它只是/app/client/index.jsx/app/client/components目录中的所有文件吗? 或者整个/app/client目录是否捆绑在一起(包括/app/client/misc下的所有内容)? 或者整个/app目录是否捆绑在一起(包括/app/npm_modules下的所有内容)?

我一直试图根据Webpack文档来解决这个问题,但它们并不充分。如果您知道答案,包括参考您找到的信息将非常有帮助。

我问,因为我想设置一个具有多个入口点的项目,其中生成的bundle.js文件仅包含必要的内容。

1 个答案:

答案 0 :(得分:4)

因为您使用importrequire。如果未导入或不需要文件,则不会将其包含在捆绑包中。

It's explained here.

注意:import是ES6功能,您需要Babel才能在大多数浏览器中使用它。