首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >卷起-防止个别出口产品受摇树之害

卷起-防止个别出口产品受摇树之害
EN

Stack Overflow用户
提问于 2022-03-23 19:41:44
回答 1查看 435关注 0票数 0

我正在构建一个组件库,它是使用卷起预编译的。

我的组件库有数百个文件,处于随机深度,我需要所有具有特定名称模式(*.constants.js)的文件都不被树动摇(与我正在处理的另一个项目的遗留向后兼容性)。

我代码的简化示例

main.js (输入文件)

代码语言:javascript
复制
import { A } from 'foo';
console.log(A)

foo.js

代码语言:javascript
复制
export const A = 1;
export const B = 1;
export const C = 1;

汇总输出/build/foo.js

代码语言:javascript
复制
const A = 1;

export { A };

对于我来说,非常重要的一点是保持其他代码库(使用"my“组件库)的能力,以便能够从特定文件中导入特定的内容,如上面的foo.js示例。

问题-

如何防止输出中的树抖动(仅用于实际场景中的*.constants.js )?

卷起设置:

代码语言:javascript
复制
{
  input: 'src/main.js',
  output: {
    dir: 'build',
    format: 'es', // imperative
    chunkFileNames: '[name].js',
    entryFileNames: '[name].js',
    preserveModules: true,  // imperative
    preserveModulesRoot: 'src',  // imperative
    sourcemap: true,
    exports: 'named',
  }
}
EN

回答 1

Stack Overflow用户

发布于 2022-03-24 10:31:14

最后,我做了一些丑陋的、但很小的事情,通过欺骗汇总将树抖动的变量当作被使用的变量来处理,但在随机命名空间下将它们转储到全局this变量上:

对于问题中的代码示例,如果我希望保留B & C的导出,则只有BC的组件在内部真正使用它:

代码语言:javascript
复制
globalThis.__rollup_no_tree_shaking = {B, C};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71593125

复制
相关文章

相似问题

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