2016-12-23 3 views
1

При создании пакета NPM, как вы создаете сборку, которая может поддерживать выбор вишни индивидуальный экспорт, чтобы сэкономить на размере пакета WebPack, Rollup или Browserify?Создание пакета NPM, который позволяет импортировать ES6 для экспорта вишневого выбора

Предпочтительный синтаксис будет:

import { myModuleOne, myModuleTwo } from 'my-npm-package';

Или

import myModuleOne from 'my-npm-package/myModuleOne'; 
import myModuleTwo from 'my-npm-package/myModuleTwo'; 
+0

Используйте ['require'] (https://nodejs.org/api/modules.html), поскольку Node.js пока не поддерживает модули ES6. – str

+0

@str Но webpack и Rollup do. –

+0

@ Gothdo Конечно, при разработке. Но вы не должны (не можете?) Публиковать пакет NPM с модулями ES6, поскольку не все пользователи пакетов могут использовать либо webpack, либо Rollup. – str

ответ

2

Просто используйте ES6 экспорт:

export const myModuleOne = ... 
export const myModuleTwo = ... 

И в package.json задающие module свойство пути вашего комплект:

{ 
    main: 'path/to/umd/bundle.js', 
    module: 'path/to/es/bundle.js', 
    ... 
} 

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