2016-12-28 2 views
11

Я хочу создать интерфейсную библиотеку. Поэтому я хочу использовать webpack. Мне особенно нравится загрузчик css и изображений. Однако я могу использовать только файлы, отличные от JS, если я использую webpack. Поскольку я строю библиотеку, я не могу гарантировать, что пользователь моей библиотеки тоже будет.Как связать библиотеку с webpack?

Есть ли способ передать все в модуль UMD, чтобы опубликовать его? Я попытался использовать несколько точек входа, однако я не могу требовать от модуля.

Заранее спасибо

+0

Возможно, я что-то пропустил, вы хотите, чтобы вы опубликовали свой пакет библиотеки в npm, и пользователи будут «импортировать» его? Итак, почему «я могу использовать только файлы, отличные от JS, если я использую webpack»? Не могли бы вы привести пример? И про «Я пытался использовать несколько точек входа». Вы считали, что вам не нужен «webpack» - достаточно только «babel»? –

+0

Да, я рассмотрел только использование babel. Однако, если я требую («./ something.css») и не использую webpack в проекте, где мне требуется («my-library»). Если я запустил это, это не сработает. –

+0

Итак, вы хотите создать библиотеку, которая будет использоваться без webpack? ОК. Вы пробовали его с одной точкой входа? –

ответ

9

Вы можете найти хорошее руководство по созданию библиотек в Webpack 2.0 documentation site. Вот почему я использую синтаксис версии 2 в webpack.config.js для этого примера.

Описание: Github repo с библиотекой примеров.

Он строит все файлы из src/ (js, png и css) в один JS пучок, который может быть просто необходимым в качестве umd модуля.

для этого нам необходимо определить параметры последующих в webpack.config.js:

output: { 
    path: './dist', 
    filename: 'libpack.js', 
    library: 'libpack', 
    libraryTarget:'umd' 
}, 

и package.json должны иметь:

"main": "dist/libpack.js", 

Обратите внимание, что вам необходимо использовать соответствующие загрузчик, чтобы упаковать все в одном файле , например base64-image-loader вместо file-loader

+0

Так ли это, что изображения библиотеки можно использовать только в том случае, если они встроены? – davesaus

+0

@ davesaus вы можете хранить изображения в разделенных файлах. Это зависит от того, как вы собираетесь использовать его. –

+0

Что мне нужно, если я хочу, чтобы приложение также создавало вместе с lib? –