ES6 модуль импорта и управления зависимостями

С использованием транспортеров уже можно использовать модули ES6. Одним из самых простых способов является использование Browserify и Babelify. Проблема у меня заключается в том, как справиться с управлением зависимостями.

В старые времена у вас просто были зависимости Бауэра. Сборка будет включать не-CDN вvendor.js и проецировать конкретные файлы вfoobar.js (или что угодно). Таким образом, вы сможете использовать полученный код в другом проекте, простоbower install foobar --save, Если обаFoobar и ваш новый проект имел общую зависимость, которую легко разрешить с помощью плоской зависимости Bowers.

Теперь в моду ES6: скажем, у меня есть проектFoo с помощьюlodash, Структура каталогов выглядит следующим образом:

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

А такжеfoo.js начинается с объявления:

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

или (как хочет Browserify, поскольку Babelify переносится в CommonJS):

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

Если я сейчас соберусь и опубликуюFoo проект и начать новый проектбар который используетFoo это будет моя структура каталогов.

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

Но это не сработает, так как путь изFoo вlodash теперь не работает (если я правильно понимаю, что в Browserify точечная косая черта в «./blaat/file.js» относится к файлу, из которого он вызывается).

Есть ли способ импортировать без каких-либо предположений пути к файлу?

Разве нет способа указать несколько исходных корней? (т.е. в приведенном выше случае src / js и src / vendor ... ну, в идеале, вы просто хотите заявитьimport * as _ from 'lodash';)

Я только использовал Browserify с Babelify в кли. Должен ли я использовать какой-то другой транспортер?

Ответы на вопрос(1)

Ваш ответ на вопрос