【问题标题】:Babel-Loader Syntax error on npm run buildnpm run build 上的 Babel-Loader 语法错误
【发布时间】:2020-09-20 22:44:58
【问题描述】:

我对 webpack 不是很擅长,我正在尝试将 webpack 从 V3 更新到 V4,并设法将我的 webpack 配置更新到不会向我抛出折旧错误的地步,但我现在陷入了语法错误通天塔加载器:

      Module build failed (from ./node_modules/babel-loader/lib/index.js):
      /path/react/node_modules/schema-utils/dist/util/hints.js:16
      const currentSchema = { ...schema
      SyntaxError: Unexpected token ...

在我的 webpack 配置中,我有这个:

         test: /\.(js|jsx)$/,
            use: [
              {
                loader: 'babel-loader',
                options: {
                  presets: [
                    '@babel/preset-env',
                    '@babel/preset-react',
                    {
                      plugins: [
                        '@babel/plugin-proposal-class-properties'
                      ]
                    }
                  ],
                  compact: true,
                  cacheDirectory: false, // @todo: legacy option: true
                },
              }
            ]

我正在使用以下版本:

 "@babel/core": "^7.1.6",
 "@babel/plugin-proposal-class-properties": "^7.8.3",
 "@babel/preset-env": "^7.1.6",
 "@babel/preset-react": "^7.0.0",
 "babel-loader": "^8.0.4",

我已经多次尝试使用不同版本的 babel,但总是以这个消息结束。谁能看到我犯的任何明显错误?

【问题讨论】:

    标签: javascript reactjs npm webpack babeljs


    【解决方案1】:

    SyntaxError: Unexpected token ... 表示您的节点没有转译 ES6。您是否将 node/npm 升级到相对较新的版本?

    另外,如果您要更改版本,我建议您在再次运行npm install 之前删除您的node_modules 文件夹和package-lock.json 文件。

    【讨论】:

    • 谢谢,原来我使用的是非常古老的节点版本!继续下一个错误...
    • @Croot 但是 Babel 的工作不是转换语法,而不是 Node 吗?它没有转译,因为schema-util 是它自己的依赖项?
    • 也许 NodeJS 必须在 BabelJS 开始编译之前从 schema-utils(babel-loader 的依赖项) 解释 ES6 语法?我想我明白了,但谁能证实这一点?
    • @user117829 较新版本的节点天真地处理 ES6,因此从不支持的较旧节点版本引用的某些模块可能会引发上述错误。
    猜你喜欢
    • 1970-01-01
    • 2021-03-03
    • 1970-01-01
    • 2023-01-31
    • 2020-03-03
    • 1970-01-01
    • 2022-08-17
    • 2017-10-05
    • 1970-01-01
    相关资源
    最近更新 更多