ES6-Modul-Import und Abhängigkeitsverwaltung

Bei Verwendung von Transpilern können bereits ES6-Module verwendet werden. Eine der einfachsten Möglichkeiten ist die Verwendung von Browserify und Babelify. Das Problem ist, wie ich mit dem Abhängigkeitsmanagement umgehen soll.

Früher hattest du nur ein paar Bower-Abhängigkeiten. Der Build würde Nicht-CDN zu @ bündel vendor.js und projektspezifische Dateien an foobar.js (oder Wasauchimmer). Dann können Sie den resultierenden Code in einem anderen Projekt verwenden, indem Sie einfachbower install foobar --save. Wenn beide foobar und Ihr neues Projekt hatte eine gemeinsame Abhängigkeit, die mit der flachen Abhängigkeit von Bowers leicht gelöst werden kann.

Nun kommen ES6-Module: Angenommen, ich habe ein Projekt foo using lodash. Die Verzeichnisstruktur sieht wie folgt aus:

src/js/foo.js src/vendor/lodash/dist/lodash.min.js

Und foo.js beginnt mit der Angabe von:

import * as _ from '../../vendor/lodash/dist/lodash.min.js';

or (wie Browserify es will, da Babelify CommonJS überträgt):

import * as _ from './../../vendor/lodash/dist/lodash.min.js';

Wenn ich jetzt abrunde und mein @ veröffentlic foo project und starte ein neues ProjektBa das benutzt foo Dies wird meine Verzeichnisstruktur sein.

src/js/bar.js src/vendor/foo/dist/foo.js src/vendor/lodash/dist/lodash.min.js

Aber das würde nicht funktionieren, da der Pfad von foo zu lodash ist jetzt defekt (wenn ich Browserify richtig verstehe, ist der Punkt-Schrägstrich in './blaat/file.js' relativ zu der Datei, aus der es aufgerufen wird).

Ist es eine Möglichkeit, Dateien zu importieren, ohne dass dabei ein Dateipfad zugrunde gelegt wird?

Gibt es keine Möglichkeit, mehrere Quellwurzeln anzugeben? (dh im obigen Fall src / js und src / vendor ... im Idealfall möchten Sie nur @ angebeimport * as _ from 'lodash';)

Ich habe Browserify nur mit Babelify auf CLI verwendet. Sollte ich einen anderen Transpiler verwenden?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage