如何使用CommonJS插件使用汇总来部分包含Node.js模块

时间:2018-11-17 07:14:34

标签: javascript node.js commonjs rollup bitcore

我正在尝试使用摇晃机制将bitcore-lib部分地包含到我的网页中,而该摇晃机制是开箱即用的,而rollup-plugin-commonjs则是用来加载Node.js模块的。

为了更好地说明问题,我制作了一个available on the 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}`);

我的rollup.config.jsavailable here

是模块定义或汇总配置问题吗?

1 个答案:

答案 0 :(得分:1)

摇树仅适用于ES6模块。至少对于Webpack来说是正确的,我也想对它进行汇总。您的第一个定义是ES6,第二个定义是commonjs。

因此,如果未将库编译/编译到ES6模块,摇树将无法进行。 另一个不起作用的功能是模块串联。

根据库,您可以尝试重新编译它。