2016-08-02 41 views
1

Ich benutze Browserify, Babel, schlucke und bemerkte ein seltsames Verhalten.Browserify, Babel und Dateierweiterungen

Sagen wir, ich habe eine Datei mit dem Namen './lib.js'. Ist ES6, sollte ich in der Lage sein, beide Syntaxen zu verwenden:

import lib from "./lib.js" 
import lib from "./lib" 

jedoch die erste Syntax immer funktioniert, aber für einige Module der zweite nicht. Anstatt ein Objekt mit meinen Exporten zu bekommen, erhalte ich ein leeres Objekt.

Ist das Verhalten von browserify unterschiedlich, ob wir die Erweiterung einschließen oder nicht? Hat es zusätzliche Einschränkungen, wie wir Exporte deklarieren sollten?

Eigentlich ist es ein Problem, weil ich kürzlich Typoskript mit tsify in meinem Projekt hinzugefügt habe. Aus irgendeinem Grund, wenn ich eine Datei importiere, die aus Typoskript kompiliert wurde, muss ich die .js Erweiterung spezifizieren (es funktioniert nicht ohne). Aber wenn ich eine .ts Datei aus einer anderen .ts Datei importieren, möchte ich nicht die Erweiterung angeben, weil ich Typoskript die .ts Datei abholen will (was es tut, wenn ich keine Erweiterung angeben) und Browserify, um die kompilierten abholen js-Datei (die es auch tut, aber das Modul nicht erkennt).

Antwort

2

Aus irgendeinem Grund, wenn ich eine Datei importieren, die aus Typoskript kompiliert wird, muss ich die Erweiterung .js angeben (es funktioniert nicht ohne).

Dies liegt daran, Typoskript wahrscheinlich nicht in der Lage ist, eine js Datei zu erkennen. Bitte fügen Sie Ihren Compileroptionen allowJs hinzu.

Mehr

habe ich ein Video, das allowJs Verbrauch und seine Auswirkungen zeigt, die Sie nützlich finden könnten: https://www.youtube.com/watch?v=gmKXXI_ck7w