I’m trying to compile this file with webpack:
var jsdom = require('mocha-jsdom');
describe('WatchlistAsset', function () {
jsdom();
it('has document', function () {
var div = document.createElement('div');
expect(div.nodeName).eql('DIV');
});
});
It seems quite simple, yet the presence of jsdom breaks everything.
First of all it can’t find fs
:
ERROR in ~/webpack-project/~/jsdom/lib/jsdom.js
Module not found: Error: Cannot resolve module 'fs' in ~/webpack-project/node_modules/jsdom/lib
@ ~/webpack-project/~/jsdom/lib/jsdom.js 1:9-22
Afterwards a huge amount of errors are thrown by webpack, and it’s even parsing files I wouldn’t expect it to parse e.g. ~/webpack-project/node_modules/jsdom/node_modules/htmlparser2/node_modules/entities/maps/entities.json
PS: I have tried setting node: {fs: 'empty'}
as suggested at pugjs/pug-loader#8, but no luck
I had this problem, but just ignored jsdom:
So my dev and production bundles don’t include jsdom, and I can run (mocha) tests from the command line.
I had the same problem. I introduced a file which construct the global document and window objects by jsdom, and the file import the webpack bundles contain the test code. This will avoid to compile the jsdom module.