首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rollupjs避免使用多个文件的重复函数

rollupjs避免使用多个文件的重复函数
EN

Stack Overflow用户
提问于 2020-06-18 10:48:24
回答 1查看 454关注 0票数 0

我正在尝试打包所有的通用库,以便在没有实际入口文件的情况下与多个项目一起使用。因此,我需要将所有函数都包含在包中

因此,我尝试使用@rollup/plugin-multi-entry指向目录中的所有文件来实现这一点

我目前面临的问题是,一些文件相互扩展,打包时,扩展功能被多次复制,名称为$n等等,是否可以使rollup不复制这些扩展功能?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2020-06-18 14:34:55

由于忽略了three-shaking的好处,将库捆绑到vendor文件中现在被认为是一种反模式。它还会带来更糟糕的caching,因为每次库更改时,整个供应商的缓存都会失效,最后,您不会从http2 multiplexing中获得太多好处。

如果您仍然想这样做,为了给它们提供可靠的名称(并避免命名冲突),手动操作要容易得多:

代码语言:javascript
复制
// vendor.js
import * as lib1 from 'lib1';
import * as lib2 from 'lib2';

export {lib1, lib2}

前面的模块用作入口点时,将导致从两个库中导出其各自名称空间下的所有导出,rollup将在内部正确处理库之间的依赖关系。

编辑:如果你可以将库与项目捆绑在一起,而不是在不同的过程中,你可以这样做:

代码语言:javascript
复制
// rollup.config.js
const libs = ['lib1', 'lib2'];
{
  input: 'index.js',
  manualChunks: {
    vendor: libs.map((lib) => require.resolve(lib))
  },
  // ...
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62441538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档