I have a problem with run unit test for my stack: - node - ts-node - express.js - sequelize - mysql - karma
When I run Karma I get a lot of errors like this one:
04 05 2018 20:49:57.255:ERROR [karma]: Error: Unable to resolve module [sqlite3] from [/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/sequelize/lib/dialects/sqlite/connection-manager.js]
{
"basedir": "/home/userName/Projects/commercial/projectName/projectName-cpf",
"extensions": [
".js",
".json",
".ts",
".tsx"
],
"moduleDirectory": [
"node_modules"
],
"modules": {
"assert": "/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/assert/assert.js",
"buffer": "/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/buffer/index.js",
"child_process": "/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/karma-typescript/dist/bundler/resolve/empty.js",
"cluster": "/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/karma-typescript/dist/bundler/resolve/empty.js",
"console": "/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/console-browserify/index.js",
"constants": "/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/constants-browserify/constants.json",
"crypto": "/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/crypto-browserify/index.js",
"dgram": "/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/karma-typescript/dist/bundler/resolve/empty.js",
"dns": "/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/karma-typescript/dist/bundler/resolve/empty.js",
"domain": "/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/domain-browser/source/index.js",
"events": "/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/events/events.js",
"fs": "/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/karma-typescript/dist/bundler/resolve/empty.js",
"http": "/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/stream-http/index.js",
"https": "/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/https-browserify/index.js",
"module": "/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/karma-typescript/dist/bundler/resolve/empty.js",
"net": "/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/karma-typescript/dist/bundler/resolve/empty.js",
"os": "/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/os-browserify/browser.js",
"path": "/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/path-browserify/index.js",
"punycode": "/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/punycode/punycode.js",
"querystring": "/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/querystring-es3/index.js",
"readline": "/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/karma-typescript/dist/bundler/resolve/empty.js",
"repl": "/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/karma-typescript/dist/bundler/resolve/empty.js",
"stream": "/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/stream-browserify/index.js",
"_stream_duplex": "/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/readable-stream/duplex.js",
"_stream_passthrough": "/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/readable-stream/passthrough.js",
"_stream_readable": "/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/readable-stream/readable.js",
"_stream_transform": "/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/readable-stream/transform.js",
"_stream_writable": "/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/readable-stream/writable.js",
"string_decoder": "/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/string_decoder/lib/string_decoder.js",
"sys": "/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/util/util.js",
"timers": "/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/timers-browserify/main.js",
"tls": "/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/karma-typescript/dist/bundler/resolve/empty.js",
"tty": "/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/tty-browserify/index.js",
"url": "/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/url/url.js",
"util": "/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/util/util.js",
"vm": "/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/vm-browserify/index.js",
"zlib": "/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/browserify-zlib/lib/index.js",
"_process": "/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/process/browser.js"
},
"filename": "",
"paths": []
}
Error: Cannot find module 'sqlite3' from '/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/sequelize/lib/dialects/sqlite'
at /home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/karma-typescript/src/bundler/resolve/resolver.ts:194:27
at /home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/browser-resolve/index.js:265:24
at /home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/browser-resolve/node_modules/resolve/lib/async.js:46:14
at process (/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/browser-resolve/node_modules/resolve/lib/async.js:173:43)
at ondir (/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/browser-resolve/node_modules/resolve/lib/async.js:188:17)
at load (/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/browser-resolve/node_modules/resolve/lib/async.js:69:43)
at onex (/home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/browser-resolve/node_modules/resolve/lib/async.js:92:31)
at /home/userName/Projects/commercial/projectName/projectName-cpf/node_modules/browser-resolve/node_modules/resolve/lib/async.js:22:47
at FSReqWrap.oncomplete (fs.js:152:21)
Above error is connected with sqlite3
, but I has also [pg]
module and [tedious]
I saw that I should install one dependencies for DB system what I use in my development, so I use npm install mysql2
but I can't start any Karma task.
Any idea where I should search? I doesn't see this problem on any github & stack questions so I think that this is in my config.
Below I post my karma.conf.js
, tsconfig.json
& package.json
karma.conf.js
module.exports = function (config) {
config.set({
frameworks: ["karma-typescript"],
files: [
"src/**/*.spec.ts",
"src/**/*.ts"
],
plugins: [
require('karma-typescript'),
require('karma-typescript-preprocessor'),
require('karma-phantomjs-launcher'),
require('karma-chrome-launcher'),
],
preprocessors: {
'**/*.ts': ['karma-typescript']
},
karmaTypescriptConfig: {
tsconfig: "./tsconfig.json"
},
reporters: ["progress", "karma-typescript"],
browsers: [
// "PhantomJS"
"Chrome"
],
singleRun: false
});
};
tsconfig.json
:
{
"compileOnSave": true,
"compilerOptions": {
"removeComments": true,
"noImplicitAny": true,
"module": "commonjs",
"target": "es6",
"sourceMap": true,
"outDir": "dist",
"watch": true,
"skipLibCheck": true,
"experimentalDecorators": true,
"emitDecoratorMetadata": true
},
"exclude": [
"./node_modules/*"
]
}
And my dependencies from package.json
:
"dependencies": {
"axios": "^0.18.0",
"errorhandler": "^1.5.0",
"express": "^4.16.3",
"http-signature": "^1.2.0",
"mysql2": "^1.5.3",
"nconf": "^0.10.0",
"nodemon": "^1.17.3",
"request": "^2.85.0",
"sequelize": "^4.37.6"
},
"devDependencies": {
"@types/chai": "^4.1.3",
"@types/errorhandler": "0.0.32",
"@types/express": "^4.11.1",
"@types/mocha": "^5.2.0",
"@types/nconf": "0.0.37",
"@types/sinon": "^4.3.1",
"chai": "^4.1.2",
"gulp": "^4.0.0",
"gulp-bump": "^3.1.1",
"gulp-rimraf": "^0.2.2",
"gulp-touch-fd": "^2.0.0",
"gulp-typescript": "^4.0.2",
"karma": "^2.0.2",
"karma-chai": "^0.1.0",
"karma-phantomjs-launcher": "^1.0.4",
"karma-chrome-launcher": "^2.2.0",
"karma-mocha": "^1.3.0",
"karma-sinon": "^1.0.5",
"karma-typescript": "^3.0.12",
"karma-typescript-preprocessor": "^0.3.1",
"mocha": "^5.1.1",
"reflect-metadata": "^0.1.12",
"sequelize-typescript": "^0.6.4",
"sinon": "^5.0.3",
"ts-node": "^6.0.1",
"typedoc": "^0.11.1",
"typescript": "^2.8.3"
}