質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

Q&A

解決済

1回答

3562閲覧

Jestでのテスト時に、node標準モジュールが使えない。

AkiUnleash

総合スコア1

Node.js

Node.jsとはGoogleのV8 JavaScriptエンジンを使用しているサーバーサイドのイベント駆動型プログラムです。

TypeScript

TypeScriptは、マイクロソフトによって開発された フリーでオープンソースのプログラミング言語です。 TypeScriptは、JavaScriptの構文の拡張であるので、既存の JavaScriptのコードにわずかな修正を加えれば動作します。

0グッド

0クリップ

投稿2021/04/03 02:15

当初の件で行き詰まってしまいました…。
もしよろしければ解決策を教えていただけると助かります。
宜しくお願いします。

問題

Node.jsでJestを使用しているが、Nodeの標準モジュールが読み込めない。コンパイルエラーが表示される。

目標

Jestにてテスト時も、Node標準モジュールを使えるようにしたい。

エラー内容

yarnにてJEST実行時、以下のエラーが発生。

→ yarn test ?master yarn run v1.22.10 warning package.json: No license field $ jest FAIL tests/test.test.ts ● Test suite failed to run tests/test.test.ts:1:21 - error TS2307: Cannot find module 'fs' or its corresponding type declarations. 1 import * as fs from 'fs' ~~~~ Test Suites: 1 failed, 1 total Tests: 0 total Snapshots: 0 total Time: 1.357 s Ran all test suites. error Command failed with exit code 1. info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

ファイル構成及びソースコード

node_modules/
tests/
├test.test.ts
package.json
tsconfig.json
yarn.lock

  • test.test.ts

typescript

1import * as fs from 'fs' 2 3describe("Jest", () => { 4 test("Test sample.", async () => { 5 expect(3 + 7).toBe(10); 6 }); 7});
  • package.json

JSON

1{ 2 "devDependencies": { 3 "@types/jest": "^26.0.22", 4 "jest": "^26.6.3", 5 "ts-jest": "^26.5.4", 6 "ts-node": "^9.1.1", 7 "typescript": "^4.2.3" 8 }, 9 "scripts": { 10 "test": "jest" 11 }, 12 "jest": { 13 "testEnvironment": "node", 14 "moduleFileExtensions": [ 15 "ts", 16 "js" 17 ], 18 "transform": { 19 "^.+\.ts$": "ts-jest" 20 }, 21 "globals": { 22 "ts-jest": { 23 "tsconfig": "tsconfig.json" 24 } 25 }, 26 "testMatch": [ 27 "**/tests/**/*.test.ts" 28 ] 29 } 30
  • tsconfig.json

JSON

1{ 2 "compilerOptions": { 3 "sourceMap": true, 4 "noImplicitAny": true, 5 "allowJs": true, 6 "strictNullChecks": true, 7 "module": "ES6", 8 "target": "ES2015", 9 "jsx": "react", 10 "allowSyntheticDefaultImports": true, 11 "moduleResolution": "node", 12 "types": [ "jest" ] 13 }, 14 "include": [ 15 "src", 16 ], 17 "exclude": [ 18 "node_modules" 19 ], 20}

補足

  • JESTを通さず、通常のソースコードでfsモジュールは、問題なく実行できる。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

自己解決しました。

tsconfig.jsonの以下のコードが、悪かったようです。
"types": [ "jest" ]

※教訓:なんとなく書いていてるtsconfig.jsonの内容を再度把握する必要あり。

投稿2021/04/03 06:20

AkiUnleash

総合スコア1

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問