angular-cli: ng test fails Module not found: Error: Can't resolve 'fs'

Bug Report or Feature Request (mark with an x)

- [X] bug report -> please search issues before submitting
- [ ] feature request

Versions.

Angular CLI: 1.5.0 Node: 9.0.0 OS: win32 x64 Angular: 5.0.0 … animations, common, compiler, compiler-cli, core, forms … http, language-service, platform-browser … platform-browser-dynamic, router

@angular/cli: 1.5.0 @angular-devkit/build-optimizer: 0.0.32 @angular-devkit/core: 0.0.20 @angular-devkit/schematics: 0.0.35 @ngtools/json-schema: 1.1.0 @ngtools/webpack: 1.8.0 @schematics/angular: 0.1.0 typescript: 2.4.2 webpack: 3.8.1

Repro steps.

ng test

Omits the following error:

ERROR in ./node_modules/fs.realpath/index.js Module not found: Error: Can’t resolve ‘fs’ in XXXX\node_modules\fs.realpath’ @ ./node_modules/fs.realpath/index.js 8:9-22 @ ./node_modules/jasmine/node_modules/glob/sync.js @ ./node_modules/jasmine/node_modules/glob/glob.js @ ./node_modules/jasmine/lib/jasmine.js @ ./src/client/app/account/login/login.component.spec.ts @ ./src/client .spec.ts$ @ ./src/client/test.ts

ERROR in ./node_modules/fs.realpath/old.js Module not found: Error: Can’t resolve ‘fs’ in ‘XXXX\node_modules\fs.realpath’ @ ./node_modules/fs.realpath/old.js 24:9-22 @ ./node_modules/fs.realpath/index.js @ ./node_modules/jasmine/node_modules/glob/sync.js @ ./node_modules/jasmine/node_modules/glob/glob.js @ ./node_modules/jasmine/lib/jasmine.js @ ./src/client/app/account/login/login.component.spec.ts @ ./src/client .spec.ts$ @ ./src/client/test.ts

ERROR in ./node_modules/jasmine/node_modules/glob/sync.js Module not found: Error: Can’t resolve ‘fs’ in ‘XXXX\node_modules\jasmine\node_modules\glob’ @ ./node_modules/jasmine/node_modules/glob/sync.js 4:9-22 @ ./node_modules/jasmine/node_modules/glob/glob.js @ ./node_modules/jasmine/lib/jasmine.js @ ./src/client/app/account/login/login.component.spec.ts @ ./src/client .spec.ts$ @ ./src/client/test.ts

ERROR in ./node_modules/jasmine/node_modules/glob/glob.js Module not found: Error: Can’t resolve ‘fs’ inXXXX\node_modules\jasmine\node_modules\glob’ @ ./node_modules/jasmine/node_modules/glob/glob.js 43:9-22 @ ./node_modules/jasmine/lib/jasmine.js @ ./src/client/app/account/login/login.component.spec.ts @ ./src/client .spec.ts$ @ ./src/client/test.ts

ERROR in ./node_modules/jasmine/node_modules/jasmine-core/lib/jasmine-core.js Module not found: Error: Can’t resolve ‘fs’ in ‘XXXX\node_modules\jasmine\node_modules\jasmine-core\lib’ @ ./node_modules/jasmine/node_modules/jasmine-core/lib/jasmine-core.js 5:9-22 @ ./node_modules/jasmine/lib/jasmine.js @ ./src/client/app/account/login/login.component.spec.ts @ ./src/client .spec.ts$ @ ./src/client/test.ts

Desired functionality.

Run the tests

Mention any other details that might be useful.

It happened when I upgraded from cli 1.47 to 1.5.0.

Jasmine packages: “jasmine”: “^2.8.0”, “jasmine-core”: “~2.5.2”, “jasmine-spec-reporter”: “~3.2.0”

Karma packages:

“karma”: “~1.5.0”, “karma-chrome-launcher”: “~2.0.0”, “karma-cli”: “~1.0.1”, “karma-coverage-istanbul-reporter”: “^1.0.0”, “karma-jasmine”: “~1.1.0”, “karma-jasmine-html-reporter”: “^0.2.2”, “karma-junit-reporter”: “^1.2.0”, “karma-mocha”: “^1.3.0”, “karma-phantomjs-launcher”: “^1.0.4”,

About this issue

  • Original URL
  • State: closed
  • Created 7 years ago
  • Reactions: 41
  • Comments: 32

Most upvoted comments

What worked for me is adding the following to karma.conf.js

webpack: { node: { fs: 'empty', } }

Hope it helps someone.

I had a "import 'jasmine'" in one of my tests. Removing it solved the problem.

I had the same error after running ng test that went away after removing import 'jasmine'; from *.spec.ts files.

If the editor is complaining about missing types for jasmine functions, you can fix that by editing tsconfig.spec.json file:

{
  "compilerOptions": {
    "types": [
      "jasmine",
      ...
    ]
  },
 ...
}

Hi All, I had the same error. The error was that I imported the wrong HttpClient (import { HttpClient } from 'selenium-webdriver/http’😉 module into the component.

I have suddenly started getting the same issue today after removing lock files, with CLI 1.6.6. The only thing that helped me is the trick with “karma.conf.js” mentioned above:

webpack: { node: { fs: 'empty', } }

Same problem, any news?

same problem here

Any news on this issue ?

@havart pointed me in the right direction. My errors were caused by importing the wrong EventEmitter in a component: changed import { EventEmitter } from 'selenium-webdriver'; to import { EventEmitter } from '@angular/core'; and the problem is fixed 😃

for my little problem with the jsonpath library a workaround for the issue is using: import * as jsonPath from ‘jsonpath/jsonpath’; instead of import * as jsonPath from ‘jsonpath’; … jsonPath.query(this._document, path || this.path);