To było moje zrozumienie, że użycie Babel pozwala ci używać ecma6 javascript w środowisku ecma5 przez transpozycję. Kiedy jednak używam "importu", "import" jest transponowany do "wymagać". "require" nie jest ecma5 i wymaga biblioteki "require.js". Dlatego nie można użyć "importu/eksportu" bez dodatkowych zależności, czy to prawda?Babel transpkuje 'import' na 'require', ale 'require nie jest użyteczny w ecma5
Odpowiedz
Tak, Babel jest przeznaczony wyłącznie do tłumaczenia nowych funkcji językowych, tak aby były zgodne z nowoczesnymi silnikami javascript. Babel nie kompiluje składni importu modułu require.js. Raczej używa składni modułu CommonJS używanego przez Node.js. Więc możesz uruchomić kod bezpośrednio, bez dalszego budowania zależności w Node.js.
Ponieważ działa pojedynczo na pojedynczych plikach i jest prostym tłumaczeniem, nie podejmuje żadnych decyzji dotyczących sposobu włączenia kodu źródłowego innych plików do bieżącego.
Powiedział, że jeśli masz zamiar używać go w przeglądarce, trzeba będzie system zbudować lub Bundler który obsługuje CommonJS moduły sprawozdań:
- Zobacz https://babeljs.io/docs/setup/#installation na liście wielu typowych konfiguracji kompilacji
- Browserify i Webpack to jedne z najpopularniejszych w ekosystemie Javacript.
- Te systemy "pakują" twój kod javascript przez wstrzykiwanie plików, gdziekolwiek jest "wymagany", a więc zazwyczaj tworzą jeden wyjściowy plik js, który można uruchomić w ecma5
Spróbuj wymienić wymaganie w transpilowanym kodzie metodą korespondującą. Przykład: dla mnie, wymień require ("reaguj") przez window.react zadziała