webpack踩坑


問題一

動態導入import() 在 eslint-loader 的相關報錯,error Parsing error: Unexpected token import

場景還原

webpack打包項目,項目中使用eslint進行語法檢查,使用babel進行語法轉化

項目需要用到路由懶加載,使用動態導入 import() 語法來實現

// ...
routes.push({
    path'/',
    name'demo',
    component() => import('../pages/xdemo.vue'// (*)
})
// ...

然后為了支持動態導入 import() 需要安裝babel插件,Babel@6需要使用babel-plugin-syntax-dynamic-import,Babel@7使用@babel/plugin-syntax-dynamic-import

安裝完插件,並進行相關配置

配置方式一:直接在webpack.conf.js里配置

{
   test/\.js$/,
   loader'babel-loader',
   exclude/node_modules/,
   options: { // 如果有這個設置則不用再添加.babelrc文件進行配置
        "babelrc"false// 不采用.babelrc的配置
        "plugins": ["syntac-dynamic-import"]
   }
}

配置方式二:在.babelrc文件里另行單獨配置

{
  "plugins": [
      "syntax-dynamic-import"
   ]
}

配置完畢之后,運行 npm run dev,項目能起來,但是卻報錯了

imgimg

看了之后發現是eslint語法檢查過程,報的錯

第一個想到的解決方法,是直接將報錯的js文件略過eslint的語法檢查,也就是在項目的.eslintignore里將報錯文件所在的文件夾進行忽略,這種方法是可行的,忽略之后成功 Compiled successfully

第二個想到的解決辦法,是對eslint檢測規則進行配置,讓其支持動態導入 import(),然后網上搜了半天,答案是需要在.eslintrc.js中的 parserOptions 里加一項配置,"parser": "babel-eslint"

imgimg

這個issue的地址是:issue地址

加了之后,好像還是報錯,后面想了一下,應該是需要下載一下這個babel-eslint的插件,然后直接用 cnpm view babel-eslint versions 命令查了一下,果然有這個插件,然后就是 cnpm i babel-esling -D 下載該插件

插件下載完畢之后,npm run dev,成功 Compiled successfully。這樣就實現了動態導入 import() 既能過eslint的語法檢查,然后也能被babel成功編譯

以上就是webpack打包項目中使用動態導入import() ,遇到的報錯,記錄一下,希望遇到類似問題的小伙伴可以作為參考


免責聲明!

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



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