Tłumaczenie: Français
Od Node.js 13, ECMAScript Modules są natywnie obsługiwane w samym Node.js. AVA 3.3 obsługuje pliki testowe ESM, jednak obsługa jest niepełna. Projekt wsparcia ESM śledzi nasze postępy.
Obsługa ESM w Node.js jest eksperymentalna, choć domyślnie włączona w Node.js 13. Zobaczysz takie komunikaty ExperimentalWarning: The ESM module loader is experimental
w output'cie AVA. Są one emitowane przez Node.js, a nie AVA.
W Node.js 12 musisz włączyć obsługę ESM. Możesz to zrobić za pomocą AVA, konfigurując nodeArguments
w twoim package.json
lub pliku ava.config.*
:
package.json
:
{
"ava": {
"nodeArguments": [
"--experimental-modules"
]
}
}
Lub w wierszu poleceń:
npx ava --node-arguments '--experimental-modules' test.mjs
Jeśli chcesz korzystać ze składni ESM, bez polegania na implementacji Node.js, najlepszym rozwiązaniem jest użycie pakietu esm
. Pamiętaj, aby użyć rozszerzenia .js
i nie ustawić "type": "module"
w package.json
.
Oto, jak możesz pracować z AVA.
Najpierw zainstaluj esm
:
$ npm install esm
Skonfiguruj go w swoim pliku package.json
lub ava.config.*
, i dodaj go do opcji AVA "require"
tak właśnie. Pamiętaj, aby dodać go jako pierwszy element.
package.json
:
{
"ava": {
"require": [
"esm"
]
}
}
Możesz teraz używać natywnych modułów ES z AVA:
// sum.js
export default function sum(a, b) {
return a + b;
};
// test.js
const test = require('ava');
const sum = require('./sum');
test('2 + 2 = 4', t => {
t.is(sum(2, 2), 4);
});