Parsing error: 'import' and 'export' may only appear at the top level


報錯

今天給項目裝上 eslint 后出現報錯 Parsing error: 'import' and 'export' may only appear at the top level.

復現

import "lib-flexible/flexible.js";
import userOptions from "@/assets/js/merge";
import { loadFiles } from "@/assets/js/tools";
import env from "@/constants/env";

window.userOptions = userOptions;

const assets = 123;

if (env === "dev") {
  import("@/assets/css/blog-common.min.css"); // 這一行import報錯
} else {
  loadFiles([
    {
      name: `${userOptions.theme.name}`,
      type: "js"
    }
  ]);
}

es6 模塊語法是允許這樣寫的, eslint 卻把它當成錯誤來處理, 如果如上頭部的幾個 import 寫在下面的話的確應該報此錯誤.

原因

eslint 默認解析器可能不支持動態導入.

解決

使用 babel-eslint 解決.

npm i babel-eslint -D

  ...
+ parser: "babel-eslint",
  parserOptions: {
    sourceType: 'module',
  }
  ...

最后附上鏈接


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM