Babel 编译 ES6 代码时遇到 "Unexpected token import" 的解决方法

阅读时长 5 分钟读完

在使用 ES6 进行前端开发时,我们通常使用 Babel 工具将 ES6 代码转换成 ES5 代码,以便在现代浏览器中运行。然而,在使用 Babel 编译 ES6 代码时,我们经常会遇到 "Unexpected token import" 的错误,这是由于 ES6 中的模块化语法 import 在 ES5 中并不被支持所导致的。本文将介绍如何解决这个问题。

解决方法

方法一:使用 Babel 插件

Babel 提供了 babel-plugin-transform-es2015-modules-commonjs 插件,可以将 ES6 的模块化语法转换成 ES5 的 CommonJS 格式,从而解决 "Unexpected token import" 的错误。我们只需要在 .babelrc 文件中添加该插件即可:

方法二:使用 Webpack

在使用 Webpack 进行前端开发时,我们可以使用 babel-loaderwebpack 提供的 resolve.alias 配置项来解决 "Unexpected token import" 的错误。具体步骤如下:

  1. 安装 babel-loaderwebpack

  2. webpack.config.js 文件中添加以下配置:

    -- -------------------- ---- -------
    -------------- - -
      -- ---
      ------- -
        ------ -
          -
            ----- --------
            -------- ---------------
            ---- -
              ------- ---------------
              -------- -
                -------- ---------------------
              -
            -
          -
        -
      --
      -------- -
        ------ -
          ---- ----------------------- ------
        -
      -
    -

    上述配置中,babel-loader 用于将 ES6 代码转换成 ES5 代码,@babel/preset-env 是一个 Babel 插件,用于根据当前环境自动确定需要转换的 JavaScript 特性,resolve.alias 则用于设置模块的别名,从而可以使用 import 导入模块。

  3. 在代码中使用 import 导入模块:

    上述代码中,@ 表示模块的根目录,utils 表示模块的相对路径。

示例代码

下面是一个使用 Webpack 和 Babel 编译 ES6 代码的示例:

-- -------------------- ---- -------
-- ------------
------ -------- ----- -
  -------------------
-

-- ------------
------ - --- - ---- ----------

------
-- -------------------- ---- -------
-- --------
-
  ---------- -
    -------------------
  -
-

-- -----------------
----- ---- - ----------------

-------------- - -
  ----- --------------
  ------ -----------------
  ------- -
    ----- ----------------------- --------
    --------- -----------
  --
  ------- -
    ------ -
      -
        ----- --------
        -------- ---------------
        ---- -
          ------- ---------------
          -------- -
            -------- ---------------------
          -
        -
      -
    -
  --
  -------- -
    ------ -
      ---- ----------------------- ------
    -
  -
--

在使用以上配置后,我们可以使用以下命令编译代码:

编译完成后,会在 dist 目录下生成 bundle.js 文件,我们可以在浏览器中打开该文件查看效果。

总结

在使用 ES6 进行前端开发时,我们需要使用 Babel 工具将 ES6 代码转换成 ES5 代码,以便在现代浏览器中运行。然而,在使用 Babel 编译 ES6 代码时,我们经常会遇到 "Unexpected token import" 的错误,这是由于 ES6 中的模块化语法 import 在 ES5 中并不被支持所导致的。本文介绍了两种解决方法:使用 Babel 插件和使用 Webpack。希望本文可以帮助读者更好地理解和使用 ES6。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/650a83a395b1f8cacd4dd780

纠错
反馈