webpack构建到多个文件

时间:2016-08-16 07:45:55

标签: javascript ecmascript-6 webpack babeljs

我有网络包应用程序,并希望构建输出多个文件而不是单个javascript文件。例如,如果我有这样的文件夹结构

components
 1.js
 2.js
actions
 1.js.
 2.js

我的webpack构建必须在相同的文件夹结构中编译文件。我怎么能做到这一点?

我试过babel cli:

babel ./src --out-dir ./lib --source-maps --presets es2015,react --plugins babel-plugin-add-module-exports,babel-plugin-transform-decorators-legacy,babel-plugin-transform-class-properties --watch

它按我想要的方式输出文件但是出错

  

无法解析模块

因为它对webpack解析一无所知。

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

让webpack输出多个文件是可能的,但它确实有局限性。首先,了解其工作原理非常重要。 Webpack实际上提供了一个运行时脚本,可以根据需要加载代码“块”,这对大型应用程序很重要,因此用户无需为了查看主页而下载整个应用程序的javascript。但是webpack需要跟踪这些块以及它们在构建时命名的内容,以便能够在运行时正确加载它们。因此,它拥有自己的文件命名约定来启用此功能。点击此处了解更多信息:https://webpack.github.io/docs/code-splitting.html。所以你可以require.ensure你所有的deps,但他们不会被命名和folfol他们描述的方式webpack的运行时将无法在这种情况下找到它们。

另一件重要的事情是webpack是一个捆绑包,所以它意味着捆绑文件。基本上你说你不想捆绑你的文件。因此,如果是这种情况,您应该考虑使用require.js。许多人已经从需求转移到捆绑商,如Wepback和Browserify,因为通常单独下载每个小模块效率不高。但是,每个应用程序都是不同的,所以你实际上可能有充分的理由不捆绑。

如果你确实想要做一些捆绑但想要优化它的完成方式,那么我也可以帮助它,而webpack肯定是一个很好的工具。但是我需要更多地了解你的用例以提供最好的建议。