Axios で「モジュール外でインポート ステートメントを使用できません」質問する

Axios で「モジュール外でインポート ステートメントを使用できません」質問する

次の 2 つのファイルを含む Vue.js アプリケーションがあります。

import axios from "axios"

これらのファイルはアプリケーション内の src/lib にあり、最初の行にインポート ステートメントが含まれています。

Github でテストを実行すると、package.json の内容に関係なく Axios 1.0.0 がインストールされ、これらのファイルを含むすべてのテストが上記のエラーで失敗します。

ステートメントを に変更してconst axios = require("axios")も失敗します。node_modules/axios/index.js には 1 行目に import ステートメントが含まれており、そこで例外がスローされます。

このような問題に対して私がよく目にする提案は、"type": "module"package.json (src/ と同じレベル) に追加するというものです。これにより、すべてのテストが失敗し、vue.config.js の名前を vue.config.cjs に変更するように要求されます。これを実行すると、次のエラーが発生しますが Error: You appear to be using a native ECMAScript module configuration file, which is only supported when running Babel asynchronously、理解できません。

ここで何をすべきか誰か提案できますか?

ベストアンサー1

私は、jestにcommonjs axiosビルドをインポートするように強制することでこのエラーを修正することができました。

  "jest": {
    "moduleNameMapper": {
      "^axios$": "axios/dist/node/axios.cjs"
    }
  },

私にとってはpackage.json、他の解決策はtransformIgnorePatternsうまくいきませんでした。

おすすめ記事