【问题标题】:How to partially include Node.js module using rollup with commonjs plugin如何使用带有 commonjs 插件的汇总部分包含 Node.js 模块
【发布时间】:2019-04-20 07:18:26
【问题描述】:

我正在尝试将 bitcore-lib 部分包含到我的网页中,使用 rollup 提供的开箱即用的 tree-shaking 和 rollup-plugin-commonjs 加载 Node.js 模块。

为了更好地说明问题我做了一个演示项目available on the github

你可以看看bundle.js。如果我按以下方式定义模块:

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

export {usefull, useless}

Tree Shaking 工作正常 - 最终包仅包含有用的依赖项。

但如果我在演示项目中以它在 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

是模块定义的问题还是汇总配置的问题?

【问题讨论】:

    标签: javascript node.js commonjs rollup bitcore


    【解决方案1】:

    Tree Shaking 仅适用于 ES6 模块。至少 Webpack 是这样,我认为 rollup 也是如此。你的第一个定义是 ES6,第二个是 commonjs。

    因此,如果一个库未编译/转译为 ES6 模块,则摇树摇晃将不起作用。 另一个不起作用的功能是模块连接。

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

    【讨论】:

    猜你喜欢
    • 2019-11-30
    • 1970-01-01
    • 2017-03-19
    • 2016-12-24
    • 2016-04-11
    • 1970-01-01
    • 2020-08-16
    • 1970-01-01
    • 2017-01-13
    相关资源
    最近更新 更多