【问题标题】:Rollup generates empty bundleRollup 生成空包
【发布时间】:2017-08-26 13:34:24
【问题描述】:

我想捆绑一个带有汇总的 .js 文件,其中只有一个类定义。但是汇总只创建一个空的捆绑文件。当我在类定义之外添加一些代码时,这会发生变化。 这会创建一个空包:

class MyElement extends HTMLElement{
    constructor() {...}
    ...
}

这会创建一个填充包:

class MyElement extends HTMLElement{
    constructor() {...}
    ...
}

customElements.define('my-element', MyElement);

但我不想在该文件中包含 ...define()。 有没有办法让 rollup.js 只捆绑类定义?

【问题讨论】:

    标签: javascript ecmascript-6 rollup


    【解决方案1】:

    老话题,但对正在研究的人可能有用: 对我来说它有效:

    更改文件tsconfig.json

      "emitDeclarationOnly": false,
    

    【讨论】:

      【解决方案2】:

      您有一个模块,它在其本地范围内定义了一个类,但不对它做任何事情 - 既不导出它,也不使用它来执行副作用,例如将其传递给 define。这是死代码 - 它将被汇总剥离。您可能想要使用

      export default class MyElement extends HTMLElement { /*
      ^^^^^^^^^^^^^^ */
          constructor() { … }
          …
      }
      

      它可以捆绑到仍然导出类的东西上,以便在其他地方使用。

      【讨论】:

      • 只是添加“导出默认值”并不会改变任何不幸的事情。我想在导入的 html.file 的脚本标签中使用该类
      • 然后你需要在你的汇总配置中指定你希望这个模块作为入口,并将它导出到全局范围。
      • 你是怎么做到的?
      • @JustinThomas 使用umd/iife output format 并指定output name
      猜你喜欢
      • 1970-01-01
      • 2021-11-24
      • 2017-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-17
      • 2017-07-24
      • 2013-11-09
      相关资源
      最近更新 更多