[解決済み] 絶対パスでコンポーネントをインポートすると、Jest は `Cannot find module` と表示する。
2022-02-17 12:04:12
質問
Jestの実行時に以下のエラーが発生します。
Cannot find module 'src/views/app' from 'index.jsx'
at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:179:17)
at Object.<anonymous> (src/index.jsx:4:12)
index.jsx
import AppContainer from 'src/views/app';
パッケージ.json
"jest": {
"collectCoverageFrom": [
"src/**/*.{js,jsx,mjs}"
],
"setupFiles": [
"<rootDir>/config/polyfills.js"
],
"testMatch": [
"<rootDir>/src/**/__tests__/**/*.{js,jsx,mjs}",
"<rootDir>/src/**/?(*.)(spec|test).{js,jsx,mjs}"
],
"testEnvironment": "node",
"testURL": "http://localhost",
"transform": {
"^.+\\.(js|jsx|mjs)$": "<rootDir>/node_modules/babel-jest",
"^.+\\.css$": "<rootDir>/config/jest/cssTransform.js",
"^(?!.*\\.(js|jsx|mjs|css|json)$)": "<rootDir>/config/jest/fileTransform.js"
},
"transformIgnorePatterns": [
"[/\\\\]node_modules[/\\\\].+\\.(js|jsx|mjs)$"
],
"moduleDirectories": [
"node_modules",
"src"
],
"moduleNameMapper": {
"^react-native$": "react-native-web"
},
"moduleFileExtensions": [
"web.js",
"js",
"json",
"web.jsx",
"jsx",
"node",
"mjs"
]
},
ツリー内に相対パスだけを含むファイルを実行する私のテストが正しく実行されます。
私は、絶対パスで失敗しないようにJestを設定する方法を探しています。
解決方法は?
であるため
package.json
がありますね。
"moduleDirectories": [
"node_modules",
"src"
]
これは、インポートした各モジュールが調べられるというものです。
node_modules
を最初に探し、見つからなければ
src
ディレクトリに格納されます。
を調べているので
src
ディレクトリを使用する必要があります。
import AppContainer from 'views/app';
このパスは絶対的なものであることに注意してください。
src
相対パスで移動する必要はありません。
または、pakcage.json 内の moduleDirectories でルートディレクトリを設定することで、すべてのコンポーネントを好きなようにインポートすることができます。
関連
-
[解決済み】Node.js Error: Cannot find module express
-
[解決済み】エラー。Ionic使用中にモジュール '../lib/utils/unsupported.js' が見つかりませんでした。
-
[解決済み】ExpressJSとMeteorJSの比較【終了しました
-
[解決済み】npx コマンドが見つかりません。
-
[解決済み] http-server コマンドが見つかりません。
-
[解決済み] "app.use(express.cookieSession())" に "secret" オプションが必要です。
-
[解決済み] Node.jsで "Cannot find module "エラーを解決するにはどうしたらいいですか?
-
[解決済み】モジュール 'node-sass' が見つからない場合の ERROR
-
[解決済み】WindowsでNodejsがインストールされたモジュールを見つけることができません。
-
[解決済み】NPMグローバルインストール "cannot find module"
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】「安全なTLS接続が確立される前にクライアントのネットワークソケットが切断されました」(ノード10
-
[解決済み】AWS Lambdaでnodejsの「ref」モジュールを使用すると「invalid ELF header」と表示される件
-
[解決済み】nodemon - app crashed - waiting for file changes before start
-
[解決済み】Mongooseで配列の値を更新する方法
-
[解決済み】Heroku + node.jsのエラー(Webプロセスが起動後60秒以内に$PORTにバインドできなかった)。
-
[解決済み】NPMインストールエラー:解析中の予期せぬJSON入力の終了 '...nt-webpack-plugin": "0'' 付近。
-
[解決済み] bodyParser は非推奨です express 4
-
[解決済み] Expectアサーションの型エラー -> expect(...).toExistは関数ではない
-
[解決済み] express は `body-parser deprecated undefined extended` としてエラーを投げます。
-
[解決済み] DynamoDBで一括削除するにはどうしたらいいですか?