【发布时间】:2020-05-15 06:15:47
【问题描述】:
场景:
- 我们正在使用 webpack 4 从我们的 Javascript 源创建一个包。
- 我们不使用 Babel,因为我们只为单一平台(最新的 Chrome)创作,而且我们只使用 Chrome 中直接可用的功能,因此不需要转译。
这样做的好处是包更小,并且在开发过程中周转时间要快得多。
现在我们要开始使用stage 4 optional chaining feature 其中can be enabled in Chrome using a flag。
我试过用谷歌搜索这个,我只能找到babel has a plugin for this。
问题:有什么办法可以让 webpack 接受这种语法同时省略 babel?
这是 webpack 当前报告的内容:
ERROR in ./src/js/components/custom-select.js 245:12
Module parse failed: Unexpected token (245:12)
You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders
| */
| focus() {
> this.input?.focus();
| return this;
| }
@ ./src/js/components/components.js 16:0-49 16:0-49
【问题讨论】:
-
解析器 webpack 只使用了第 4 阶段的功能,可选链仍然是第 3 阶段。似乎他们对支持这个特定用例不感兴趣(第 3 阶段的功能没有降级)
-
@Klaycon 可选链接是第4阶段。github.com/tc39/proposal-optional-chaining
-
非常正确,我很抱歉。 Acorn(webpack 使用的解析器)在这里有一个针对可选链接的开放拉取请求:github.com/acornjs/acorn/pull/891
-
@Klaycon 看来您可以将其作为可接受的答案。
标签: javascript webpack optional-chaining