Skip to content

Latest commit

 

History

History
74 lines (53 loc) · 1.95 KB

es-modules.md

File metadata and controls

74 lines (53 loc) · 1.95 KB

Korzystanie z modułów ES w AVA

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łączanie eksperymentalnej obsługi ESM w Node.js 12

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

Używanie pakietu esm

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);
});