2016-12-07 3 views
1

У меня есть частная библиотека, которую я преобразовал в использование es6 и webpack. Как включить эту библиотеку таким образом, чтобы я мог импортировать все дерево исходных текстов?Взаимозависимости от Babel/webpack

Библиотека выглядит следующим образом:

portedlibrary

src/dir1/Class1.js 
src/dir1/Class2.js 

И мое приложение выглядит следующим образом:

Применение

src/app.js 
src/app2.js 
node_modules/portedlib/src/dir1/Class1.js 
node_modules/portedlib/src/dir1/Class2.js 

Для внутреннего импорта, я могу использовать относительную Pathing : import {app2} from './app2 F или импорта библиотеки, я импортирую один файл: import moment from 'moment'

Как импортировать отдельные классы из portedlibrary?

Когда я пытаюсь импортировать класс с помощью import {Class1} from 'portedlib' я получаю следующее сообщение об ошибке: Module not found: Error: Can't resolve 'portedlibrary' in ...

+1

Вы можете 'импорт Class1 из«portedlib/SRC/d ir1/Class1 '; ', это то, что вы ищете? – loganfsmyth

+0

@loganfsmyth, это тоже сработает! Я бы опубликовал это как snwer. –

ответ

1

Реэкспорт каждого экспорта по умолчанию в качестве имени экспорта в другой файл (например, index.js, так что вы можете ссылаться на LIB по его имя):

// node_modules/portedlib/index.js 
export { default as Class1 } from './src/dir1/Class1' 
export { default as Class2 } from './src/dir1/Class2' 

А затем импортировать их:

import { Class1, Class2 } from 'portedlib' 
+0

Есть ли инструмент для ручного создания этого глобального экспорта из исходного дерева? Или мне просто нужно вручную перечислить весь экспорт? –