Ich versuche, einen Javascript-Test in Intellij zu schreiben, für den ich einige Abhängigkeiten importieren muss, und ich möchte Importanweisungen im ES6-Stil verwenden, erhalte jedoch Fehler
/ usr / local / bin / knoten / arbeitsbereich / rr-sample / knotenmodule / mokka / bin / _mocha --ui bdd --reporter "/ Users / me / Bibliothek / Anwendungsunterstützung / IntelliJIdea2019.1 / NodeJS / js / mocha- Intellij / lib / mochaIntellijReporter.js "tests / *. test.js /workspace/rr-sample/tests/App.test.js:3
Chai aus 'Chai' importieren
^^^^^^
singleRun (/workspace/rr-sample/node_modules/mocha/lib/cli/run-helpers.js:108:16) unter exports.runMocha (/ workspace / rr-sample / node_modules / mocha / lib / cli / run-helpers) .js: 142: 13) unter Object.exports.handler (/workspace/rr-sample/node_modules/mocha/lib/cli/run.js:292:3) unter Object.runCommand (/ workspace / rr-sample / node_modules /yargs/lib/command.js:242:26) bei Object.parseArgs [als _parseArgs] (/workspace/rr-sample/node_modules/yargs/yargs.js:1087:28) bei Object.parse (/ workspace / rr -sample / node_modules / yargs / yargs.js: 566: 25) unter Object.exports.main (/workspace/rr-sample/node_modules/mocha/lib/cli/cli.js:68:6) unter Object. (/ workspace / rr-sample / node_modules / mocha / bin / _mocha: 10: 23) unter Module._compile (intern / modules / cjs / loader.js: 1121: 30) unter Object.Module._extensions..js (intern) /modules/cjs/loader.js:1160:
Was genau ist das Problem? Ich habe diesen Link (und andere) http://xahlee.info/js/js_import_export.html gefunden, der Ihnen sagt, wie Sie diesen Fehler beheben können, aber in einem anderen Kontext, der mir nicht hilft, und der nicht erklärt, wo das Problem liegt .
Falls es hier hilfreich ist, ist der Code, den ich verwende.
//const chai = require("chai");
import chai from 'chai'
const React = require("react");
const expect = chai.expect;
describe('how it works first-time test', () => {
it('checks equality', () => {
const val = false;
expect(val).to.be.false;
});
});
quelle
import
oder verwendetexport
, muss er als Modul geladen werden." entlang des Teils, wo es heißt, dass Sie verwenden müssentype="module"
. Haben Sie die Syntax der Intellij Idea Ecmascript Harmony-Module gesehen ?Antworten:
Der einfachste Weg, in ES6 geschriebene Mokka-Tests auszuführen, besteht darin, sie im laufenden Betrieb mit der Mokka-
--require @babel/register
Option zu kompilieren (siehe https://github.com/mochajs/mocha/wiki/compilers-deprecation#what-should-i-use-instead) -dann ). Natürlich müssen Sie sicherstellen , dass die entsprechende Module installieren machen und die Einrichtung.babelrc
entsprechendpackage.json:
.babelrc:
Siehe auch https://dev.to/bnorbertjs/my-nodejs-setup-mocha--chai-babel7-es6-43ei
quelle
Laut dem Dokument :
Sie müssen also sicherstellen, dass das Skript als es-Modul ausgeführt wird.
Beispiel: Führen Sie das Skript mit babel-node anstelle von Nodejs aus, um es6 oder höher zu aktivieren.
quelle