天天看點

vue-cli建立的項目中引入第三方庫報錯 'caller', 'calle', and 'arguments' properties may not be...

以在vue中引入mui第三方庫為例:

雖然針對vue,有單獨的vue-mui庫可以使用,但因習慣了直接使用第三方庫,且單獨的mui更全面一點,是以想要作為第三方js庫來引用。

問題: 在vue的main.js中引入mui.min.js時,報錯。

vue-cli建立的項目中引入第三方庫報錯 'caller', 'calle', and 'arguments' properties may not be...

如上,單獨在main.js或者任意元件中通過import 方式引入mui時都會報這個錯。

原因:babel在将js檔案轉碼為ES5時,預設使用嚴格模式,而在嚴格模式下,為了安全起見是不能用caller,callee,arguments等屬性的。

解決:修改bablerc檔案的配置,讓項目忽略第三方js的轉碼。

vue-cli建立的項目中引入第三方庫報錯 'caller', 'calle', and 'arguments' properties may not be...
.babelrc檔案:
{
  "presets": [
    ["env", {
      "modules": false,
      "targets": {
        "browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
      }
    }],
    "stage-2"
  ],
  "plugins": ["transform-runtime"],
  "env": {
    "test": {
      "presets": ["env", "stage-2"],
      "plugins": ["istanbul"]
    }
  },
  "ignore": [
    "./src/assets/libs/*.js"
  ]
}
      

此外,引入第三方庫,如果設定了文法檢查也會各種檢查第三方js的文法錯誤。進而報錯

通過修改eslintignor檔案,将對應目錄下的js忽略即可
src/assets/libs/*.js      

非學,無以緻疑;非問,無以廣識