Как частично включить модуль Node.js, используя накопительный пакет с плагином commonjs - PullRequest
0 голосов
/ 17 ноября 2018

Я пытаюсь включить bitcore-lib частично в мою веб-страницу, используя встряхивание дерева, которое предоставляет накопительный пакет из коробки, и rollup-plugin-commonjs для загрузки модуля Node.js.

Чтобы лучше проиллюстрировать проблему, я делаю демонстрационный проект, который доступен на github

Вы можете взглянуть на bundle.js. Если я определю модуль следующим образом:

const useful = "3";
const useless = "4";

export {usefull, useless}

Встряхивание дерева работает правильно - окончательный комплект включает только полезные зависимости.

Но если я определю модуль так, как он определен в bitcore-lib (node-lib.js) в демонстрационном проекте:

module.exports = {
    useful: "1",
    useless: "2"
};

В этом случае окончательный комплект включает весь модуль.

Я ожидал, что зависимость useless: 2 не должна быть включена из-за тряски деревьев. Мой index.js здесь:

import {usefull as usefull1} from "./my-node-lib"
import {usefull as usefull2} from "./my-es-lib"

console.log(`hi! ${usefull1} ${usefull2}`);

My rollup.config.js is доступно здесь

Это проблема определения модуля или конфигурации накопительного пакета?

1 Ответ

0 голосов
/ 18 ноября 2018

встряхивание дерева работает только для модулей ES6.По крайней мере, это верно для Webpack, и я полагаю, что и для свертывания.Ваше первое определение - ES6, второе - commonjs.

Поэтому, если библиотека не скомпилирована / не перенесена в модули ES6, встряхивание дерева не будет работать.Другая функция, которая не будет работать, - это конкатенация модулей.

В зависимости от библиотеки вы можете попытаться перекомпилировать ее.

...