1

我是一个相当大的 ReactJS 项目的新手。在顶层,它没有通常webpack.config.js`webpack.config.babel.js'。这个确实被使用了,我可以在运行时验证

> webpack

被调用(通过npm runNODE_ENV=development 和 WEBPACK_CONFIG=server_dev²,但这并不重要)。

为什么呢?

a) 如果我删除那个 babel-config,我会得到一个正当的投诉,即:

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

b)相反,如果我添加自己的“几乎什么都不做webpack.config.js”确实是“规则”(webpack.config.babel.js不再使用)。


webpack.config.js因此,显然,如果缺少此文件,则会出现“不可见”的默认值。再一次,显然?,这个默认配置以某种方式迎合了 webpack 配置?通过什么方式?通过安装这些节点模块?

还是.babelrcwebpack 的标记文件?

有趣的是,这个项目,preact-www项目有同样的事情。(也不是原始的 webpack 配置,而是 webpack 的味道)。所以他们知道一些事情,我不...

4

2 回答 2

7

Webpack 用于interpret加载配置文件。它需要带有基本名称的第一个文件webpack.configwebpackfile任何扩展名都interpret知道。此外,它优先考虑.js文件。

找到配置后,注册相应的编译器需要配置。特别是在 的情况下.babel.js,它会尝试一个接一个地要求这三个模块,直到找到其中一个。如果成功,则babel基本上挂钩到要求文件。

于 2017-11-11T20:49:44.383 回答
1

tl;博士;

从 webpack 版本 3 开始,您可以使用 awebpack.config.babel.js代替没有 ' .babel' 的相同东西,并立即愉快地将 ES6 放入其中(更高级的import语句、const 等......)。

比方说,这个特性没有被过度记录。

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

根据这个稍微相关的答案,babel 使用了“需要配置文件的依赖项”的解释。

显然,如果没有,webpack 无法将 ES6 用于 webpack.config 文件中的 javascript。(而且由于 webpack 是最需要的,要将 ES6 转换为 ES5,如果 webpack 配置自己之前需要一些 webpack 转换,你会遇到一个蛋疼的问题......)

许多项目,包括流行 项目,都是这样做的:

  • 没有webpack.config.js
  • 而是立即使用webpack.config.babel.js包含 ES6 (标志符号: )...import

那么这似乎是 ES6 webpack 配置文件的最佳实践呢?似乎是这样,尽管除了简短的功能讨论之外,我在 webpack 文档中找不到它。

顺便说一句: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
于 2017-09-18T10:02:14.877 回答