Estou tentando escrever um teste de javascript no intellij para o qual preciso importar algumas dependências e quero usar instruções de importação no estilo ES6, mas obtendo erro
/ usr / local / bin / node / workspace / rr-sample / node_modules / mocha / bin / _mocha --ui bdd --reporter "/ Usuários / me / Biblioteca / Suporte a aplicativos / IntelliJIdea2019.1 / NodeJS / js / mocha- intellij / lib / mochaIntellijReporter.js "tests / *. test.js /workspace/rr-sample/tests/App.test.js:3
importar chai de 'chai'
^^^^^^
singleRun (/workspace/rr-sample/node_modules/mocha/lib/cli/run-helpers.js:108:16) em export.runMocha (/ workspace / rr-sample / node_modules / mocha / lib / cli / run-helpers .js: 142: 13) em Object.exports.handler (/workspace/rr-sample/node_modules/mocha/lib/cli/run.js:292:3) em Object.runCommand (/ workspace / rr-sample / node_modules /yargs/lib/command.js:242:26) em Object.parseArgs [como _parseArgs] (/workspace/rr-sample/node_modules/yargs/yargs.js:1087:28) em Object.parse (/ workspace / rr -sample / node_modules / yargs / yargs.js: 566: 25) em Object.exports.main (/workspace/rr-sample/node_modules/mocha/lib/cli/cli.js:68:6) em Object. (/ workspace / rr-sample / node_modules / mocha / bin / _mocha: 10: 23) no Module._compile (internal / modules / cjs / loader.js: 1121: 30) em Object.Module._extensions..js (internal /modules/cjs/loader.js:1160:
Qual é exatamente o problema? Encontrei este link (e outros) http://xahlee.info/js/js_import_export.html, que mostra como corrigir esse erro, mas em outro contexto que não me ajuda, e não explica qual é o problema .
Caso seja útil, aqui está o código que estou usando.
//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;
});
});
fonte
import
orexport
, então ele deve ser carregado como módulo". ao longo da parte em que diz que você deve usartype="module"
. Você viu a sintaxe dos módulos Intellij Idea Ecmascript Harmony ?Respostas:
A maneira mais fácil de executar testes Mocha escritos no ES6 é compilá-los on-the-fly usando a
--require @babel/register
opção Mocha (consulte https://github.com/mochajs/mocha/wiki/compilers-deprecation#what-should-i-use-instead então ). Obviamente, você deve certificar-se de instalar os módulos correspondentes e configurar.babelrc
adequadamentepackage.json:
.babelrc:
Veja também https://dev.to/bnorbertjs/my-nodejs-setup-mocha--chai-babel7-es6-43ei
fonte
De acordo com o documento :
Portanto, você deve garantir a execução do script como um módulo es.
Por exemplo, execute o script usando o babel-node em vez do Nodejs para ativar o es6 ou mais recente.
fonte