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.config
或webpackfile
和任何扩展名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