Сборка библиотеки JS webpack

340
27 декабря 2016, 01:59

Пытаюсь собрать библиотеку JS написанную на es6 в бандл. Для модулей используется import/export и пресет es2015 Либа имеет следующую структуру.

./src/
   Unit1.js
   Unit2.js
   ...
   UnitN.js
   Entry.js  //Точка входа

В точке входа собираю в пространство имен экспортируемые классы

import A from 'MyLib/Unit1.js'
import B from 'MyLib/Unit3.js'
import C from 'MyLib/UnitN.js'
export default {
    A: A,
    B: B,
    C: C
};

конфиг webpack:

{
context: lib_path,
entry: './Entry.js',
output: {
    path: `${__dirname}/dist`,
    filename: 'bundle.js',
    library: 'MyLib'
},
module: {
    loaders: [{
        test: /.js$/,
        loader: 'babel-loader',
        query: {
            presets: ['es2015']
        }
    }]
},
resolve: {
    root: lib_path,
    alias: {
        MyLib: './'
    }
}
}

Проблема в следующем я могу определить пространство имен в конфиге webpack(output.library), но тогда для обращения к классам библиотеки нужно использовать конструкции MyLib.default.A хотелось бы исключить слово default.

Answer 1

В общем судя по всему webpack ничего не режет, и нужно просто правильно применить синтаксис es6-модулей.

Вот очень подробная статья на английском.

Нам не нужен экспорт по умолчанию, нам нужны именованные экспорты, поэтому просто убираем слово default:

export {
    A: A,
    B: B,
    C: C
};

А теперь видим на это, и понимаем что можем применить es6-фичу которая позволяет кратко объявлять такие объекты и напишем просто

export {A, B, C}

Собственно такой формат экспорта можно увидеть очень часто. Там где предпочитают экспортировать модуль в одном месте а не по кусочкам.

READ ALSO
slick slider выводить последние слайды

slick slider выводить последние слайды

Добрый день, есть ли в слике возможность выводить не первые скажем 5 слайдов, а последние 5 ?

430
Расширение для chrome: не работает jQuery

Расширение для chrome: не работает jQuery

Решил написать расширение для vkcom в chrome

454
Помогите упростить код

Помогите упростить код

Привет всем! Недавно начал познавать мир jQuery и его магию, и состряпал алгоритм для ротатора картинокВсе работает, к моему удивлению, но я бы не проч...

321
Проблема с получением id тега в jquery

Проблема с получением id тега в jquery

В общем, есть страница, где я работаю с ajax и jqueryС одной половины страницы размещены 3 инпута, куда я загоняю инфу, со второй размещена таблица,...

343