Zainstalowaliśmy karmę, która używa testów mocha i chai. Staramy się integrować babel prosto do karmy za pomocą preprocesora karma-babel, aby przekonwertować nasze pliki ES6 na ES5, które mają być uruchomione. Używanie mocha indywidualnie działa z babelem, tj. Poleceniem testu mokki, ale staramy się używać karmy zamiast tego, że nie działa.Babel [karma-babel-preprocesor] Nie konwertowanie ES6-> ES5 dla testów karmy
karma.conf.js snippet:
frameworks: ['mocha', 'chai'],
// preprocess matching files before serving them to the browser
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
preprocessors: {
'src/**/*.js': ['babel'],
'test/**/*_spec.js': ['babel']
},
"babelPreprocessor": {
options: {
presets: ['es2015'],
sourceMap: 'inline'
},
filename: function(file) {
return file.originalPath.replace(/\.js$/, '.es5.js');
},
sourceFileName: function(file) {
return file.originalPath;
}
},
// list of files/patterns to load in the browser
files: [
'src/**/*.js',
'test/**/*_spec.js'
],
package.json fragmenty:
"scripts": {
"test": "./node_modules/karma/bin/karma start karma.conf.js"
},
"babel": {
"presets": ["es2015"]
},
"devDependencies": {
"babel-preset-es2015": "^6.1.18",
"chai": "^3.4.1",
"karma": "^0.13.15",
"karma-babel-preprocessor": "^6.0.1",
"karma-chai": "^0.1.0",
"karma-mocha": "^0.2.1",
"karma-phantomjs-launcher": "^0.2.1",
"phantomjs": "^1.9.18",
"redux": "^3.0.4"
}
Otrzymujemy następujący błąd:
PhantomJS 1.9.8 (Mac OS X 0.0.0) ERROR
ReferenceError: Can't find variable: exports
at Users/alexgurr/BT/FutureVoice/trunk/Portal/server/src/login.es5.js:3
Kiedy oceniać pliki JS bycia załadowane, nie zostały przekonwertowane do wersji ES5, dlatego też nadal istnieje składnia "export".
Nie chcemy używać żadnych innych frameworków do konwersji, np. webpack, browserify itp.
Dzięki!
Oczywiście pliki _was_ transpiled. Prawdopodobnie Babel właśnie został zainstalowany globalnie ('npm install -g babel'), aby lokalne' node_modules' nie rosło w sposób niekontrolowany – ankhzet