2017-06-11 3 views
1

ich installiert Chrome Beta - Version 60.0.3112.24 (Official Erstellung) Beta (64-Bit)Benötigt ES6 Import/Export die Erweiterung ".js"?

In chrome: // flags/I 'Experimental Webplattformfunktionen' aktiviert ist (siehe https://jakearchibald.com/2017/es-modules-in-browsers)

ich dann versucht:

<script type="module" src='bla/src/index.js'></script> 

wo index.js eine Linie hat wie:

export { default as drawImage } from './drawImage'; 

Diese in eine vorhandene Datei verweisen drawImage.js

, was ich in der Konsole ist Fehler in

GET http://localhost/bla/src/drawImage 

Wenn ich den Export und fügen „Js“ Erweiterung ändern es funktioniert gut.

Ist das ein Chrome Bug oder verlangt ES6 in diesem Fall die Erweiterung?

Auch Webpack baut es gut ohne die Erweiterung!

Antwort

2

Die Erweiterung ist Teil des Dateinamens. Sie müssen es in setzen

Als Beweis versuchen Sie dies:.

  • Umbenennungsdatei drawImage.test
  • bearbeiten index.js'./drawImage.test'

Reload enthalten und Sie werden die extendion sehen js oder test ist völlig unabhängig, solange Sie es in der export angeben.

Offensichtlich nach dem Test wieder auf die richtige/bessere js Erweiterung.

+0

thx! Ich bin verwirrt, da es scheint, dass der Import keine Erweiterung benötigt? Auch das Webpack funktioniert ohne die Erweiterung! – kofifus

+0

Ich habe diese experimentellen Funktionen nie ausprobiert, aber in node.js verwenden Sie den 'commonJS'-Mechanismus. Ich bin auf ähnliche Probleme gestoßen und die Lösung bestand darin, den Lader * die Erweiterung nicht raten zu lassen. Auch wenn Sie zwei Dateien haben, können beide machbar sein, wie "data.js" und "data.json". Ich denke, es ist besser, explizit zu sein, aber das ist nur meine Meinung. – pid

1

Nein, Module interessieren sich nicht für Erweiterungen. Es muss nur ein Name sein, der in eine Quelldatei aufgelöst wird.

In Ihrem Fall, http://localhost/bla/src/drawImage ist keine Datei, während http://localhost/bla/src/drawImage.js ist, so dass dort, wo Fehler kommt aus. Sie können Ihren Server beispielsweise so konfigurieren, dass er die Erweiterung ignoriert. Webpack macht das Gleiche.

Verwandte Themen