我正在构建一个组件库,它是使用卷起预编译的。
我的组件库有数百个文件,处于随机深度,我需要所有具有特定名称模式(*.constants.js)的文件都不被树动摇(与我正在处理的另一个项目的遗留向后兼容性)。
main.js (输入文件)
import { A } from 'foo';
console.log(A)foo.js
export const A = 1;
export const B = 1;
export const C = 1;汇总输出/build/foo.js
const A = 1;
export { A };对于我来说,非常重要的一点是保持其他代码库(使用"my“组件库)的能力,以便能够从特定文件中导入特定的内容,如上面的foo.js示例。
问题-
如何防止输出中的树抖动(仅用于实际场景中的*.constants.js )?
卷起设置:
{
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',
}
}发布于 2022-03-24 10:31:14
最后,我做了一些丑陋的、但很小的事情,通过欺骗汇总将树抖动的变量当作被使用的变量来处理,但在随机命名空间下将它们转储到全局this变量上:
对于问题中的代码示例,如果我希望保留B & C的导出,则只有B和C的组件在内部真正使用它:
globalThis.__rollup_no_tree_shaking = {B, C};https://stackoverflow.com/questions/71593125
复制相似问题