次の 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
うまくいきませんでした。