Ich habe versucht, automatisierte Tests für mein Repository mit mocha-webpack und Travis CI einzurichten. Meine Tests laufen zwar gut auf meinem lokalen Computer, konnten aber noch nicht mit Travis CI abgeschlossen werden. Ich habe nicht in der Lage gewesen, diesen letzten Fehler herauszufinden:Travis CI, Mokkatext, Webpack Kompilierungsfehler: Modul nicht gefunden: 'jQuery'
WEBPACK Failed to compile with 1 error(s)
Error in ./src/ts/myfile.ts
Module not found: 'jQuery' in '/home/travis/build/myname/myrepo/src/ts'
Basierend aus der Fehlermeldung, es sieht aus wie webpack versucht, die jQuery-Modul zu lösen (ich den Imports unter der Annahme durch meinen webpack hinzugefügt werden .ProvidePlugin-Aufruf, da es keine jquery-Importe in myfile.ts gibt) in meine Dateien, anstatt nach node_modules zu suchen.
Testskript
mocha-webpack --webpack-config webpack.config.js --require jsdom-global/register
Abhängigkeiten
"jquery": "^3.2.1"
dev Abhängigkeiten
"@types/chai": "^4.0.4"
"@types/jquery": "3.2.0"
"@types/mocha": "^2.2.42"
"chai": "^4.1.1"
"css-loader": "^0.28.5"
"jsdom": "^11.2.0",
"jsdom-global": "^3.0.2"
"mocha": "^3.5.0"
"mocha-typescript": "^1.1.7"
"mocha-webpack": "^1.0.0-rc.1"
"sass-loader": "^6.0.6"
"ts-loader": "^2.3.3"
"typescript": "^2.4.2"
"webpack": "^3.5.5"
webpack.config.js
const webpack = require("webpack");
module.exports = {
target: "node",
externals: ["jquery", "moment"],
resolve: {
extensions: [".ts", ".js"]
},
module: {
loaders: [
{ test: /\.ts$/, loader: "ts-loader" },
{ test: /\.scss$/, loaders: ['css-loader/locals?modules', 'sass-loader'] }
]
},
plugins: [
new webpack.ProvidePlugin({
$: "jQuery",
jQuery: "jQuery"
})
]
}
travis
language: node_js
node_js:
- "node"
cache:
directories:
- "node_modules"
tsconfig.json
{
"compilerOptions": {
"module": "commonjs",
"noImplicitAny": true,
"removeComments": true,
"sourceMap": true,
"target": "es5",
"lib": ["es2016", "dom"],
"typeRoots": [
"node_modules/@types"
],
"experimentalDecorators": true // For the decorators in Mocha tests.
},
"compileOnSave": true,
"include": [
"src/**/*",
"test/*"
]
}