Webpack如何直接导入webpack.config.babel.js?

我是一个很大的ReactJS项目的新手。 在顶层,它没有通常的webpack.config.js ,但只有一个`webpack.config.babel.js'。 这个确实得到使用,我可以validation,当运行

 > webpack 

被调用(通过npm run NODE_ENV =开发和WEBPACK_CONFIG =server_dev²,但这应该不重要)。

为什么?

a)如果我删除了babel-config,我得到一个合理的投诉,即:

configuration文件可以在当前目录中被命名为“webpack.config.js”。

b)相反,如果我添加自己的do-almost-nothing webpack.config.js ,那确实是“规则”(不再使用webpack.config.babel.js )。


所以,显然,如果这个文件丢失了,那么会有一个“不可用”的默认webpack.config.js 。 而且,显然呢,这个默认configuration以某种方式迎合了webpackconfiguration? 通过什么方式? 由于安装了这些节点模块?

还是.babelrc一个标记文件的sorting到webpack?

有趣的是,这个项目, preact-www项目也是一样的。 (也不是原始的webpackconfiguration,但webpack的味道)。 所以他们知道什么,我不…

Webpack使用interpret来加载configuration文件。 它需要第一个文件的基本名称webpack.configwebpackfile和任何扩展名interpret知道。 另外,它优先考虑.js文件。

findconfiguration后,它注册相应的编译器并需要configuration 。 特别是在.babel.js情况下,它试图一个接一个地要求这三个模块 ,直到find它们中的一个。 如果成功的话, babel基本上会涉及到需要文件。

TL;博士;

从webpack版本3开始,你可以使用webpack.config.babel.js而不是使用' .babel '这个东西,并且很乐意把ES6放在它里面( .babel import语句,const等等)。

比方说,这个function没有被过度logging。

让我与你分享我的(模糊的)研究:

根据这个轻微的相关答案 ,babel使用解释 “需要configuration文件的依赖关系”。

显然没有,webpack不能在您的webpack.config文件中使用ES6的JavaScript。 (因为webpack是最需要的,为了将ES6转换成ES5,你会遇到一个鸡蛋和鸡蛋的问题,如果webpackconfiguration自己需要一些webpack转换之前…)

许多项目,包括受欢迎 的项目都是这样做的:

  • 没有webpack.config.js
  • 使用包含ES6( webpack.config.babel.js标志: import )的webpack.config.babel.js ,而不是立即…

所以这似乎确立了ES6 webpackconfiguration文件的最佳实践,那么呢? 似乎如此,虽然我无法在webpack文档中find,除了一个简短的function讨论 。

顺便说一下:现在至less提到的interpret包已经和webpack 3.x一起使用了。 无需另外安装任何东西:

 /depot/own/webpacktest $ npm ls interpret webpacktest@1.0.0 /depot/own/webpacktest └─┬ webpack@3.5.6 └── interpret@1.0.3