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
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 removingimport 'jasmine';
from*.spec.ts
files.If the editor is complaining about missing types for
jasmine
functions, you can fix that by editingtsconfig.spec.json
file: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:
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';
toimport { 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);