gpt4 book ai didi

javascript - 没有加载程序的 webpack 阻止我使用高级 JavaScript 语法,在原生传播语法上解析错误

转载 作者:行者123 更新时间:2023-11-29 20:58:02 25 4
gpt4 key购买 nike

我正在编写一个 Node 工具,并在发布到 npm 之前将其与 webpack 捆绑在一起(以便使用 npx 快速执行)

我不需要任何加载程序/babel 设置,因为它是纯 JavaScript,在我当前的 Node 9 下运行良好。它曾经工作过。 webpack 配置是 trivial (13 行)。

但是,在打包时,最新的 webpack (^3.10.0) 提示我开始使用的传播语法:(此时 JS 阶段 3,但被 Node 8.1+ 和 Node 9 接受)

Module parse failed: Unexpected token (47:2)
You may need an appropriate loader to handle this file type.
|
| return {
| ...SEC,
| listenToUncaughtErrors,
| listenToUnhandledRejections,

那为什么呢?目标( Node )正在接受这种语法,难道 webpack 不应该只是捆绑我的代码吗?

webpack 是否使用嵌入式 JS 解释器解析我的代码?看起来是这样,但是我在哪里可以找到这个解释器的规范并查看支持哪些功能?

我在文档中找不到任何内容。类似问题here不在“no babel”配置中。

那么为什么 webpack 在这里提示?

[编辑] 配置和完整代码 here为了您的方便,粘贴在这里:

module.exports = {
target: 'node',
entry: {
main: './src/index.js'
},
output: {
path: path.join(__dirname, '../dist'),
filename: 'bundled.js',
},
externals: {
conf: 'commonjs conf',
},
}

最佳答案

(我的一位同事指出了我的答案)

,webpack 正在解析 JavaScript 代码。它在内部使用 acorn “一个小巧、快速的 JavaScript 解析器,完全用 JavaScript 编写。”。在这个问题的时候,webpack 是 calling acorn与语言版本 2017

YES,acorn 正在限制可用的 JavaScript 功能。根据doc :“Acorn 仅实现了‘第 4 阶段’(最终确定的)ECMAScript 功能。

Spread syntax 是第 3 阶段的特性(在这个问题出现时),webpack/acorn 无法解析它,导致错误:

Module parse failed: Unexpected token.

You may need an appropriate loader to handle this file type.

所以,webpack 正在解析代码并使用 stage <= 3 功能需要 webpack 加载器。

关于javascript - 没有加载程序的 webpack 阻止我使用高级 JavaScript 语法,在原生传播语法上解析错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48248632/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com