提问人:Alan Omar 提问时间:11/10/2023 最后编辑:Alan Omar 更新时间:11/23/2023 访问量:48
如何摇树@carbon/图表反应?
How to Tree shake @carbon/charts-react?
问:
我正在构建一个 react 组件库,这个库有依赖项。@carbon/charts-react
在我从中导入的组件之一中,这是我在 lib 中使用的唯一组件。RadarChart
@carbon/chars-react
@carbon/charts-react
import { RadarChart as RadarChartCarbon } from '@carbon/charts-react';
问题:
当我运行 rollup 来构建库时,我注意到整个都包含在构建中。@carbon/charts-react
Ho 在构建中只包含组件?提前致谢。RadarChart
下面是 rollup 配置:
export default {
input: 'src/index.js',
output: [
{
format: 'es',
dir: 'build',
// preserveModules: true,
// preserveModulesRoot: 'src',
// sourcemap: false,
},
],
plugins: [
peerDepsExternal(),
typescript({
module: 'ESNext',
declarationDir: './build',
}),
commonjs({
include: 'node_modules/**',
namedExports: {
'react-is': ['isForwardRef', 'isValidElementType'],
},
}),
resolve({
preferBuiltins: true,
}),
babel({
babelHelpers: 'runtime',
exclude: 'node_modules/**',
presets: ['@babel/preset-react'],
plugins: [['@babel/plugin-transform-runtime', { useESModules: true }]],
}),
postcss({
to: './build/base.css',
preprocessor: (content, id) =>
new Promise(res => {
const result = sass.renderSync({ file: id });
res({ code: result.css.toString() });
}),
plugins: [url(options), autoprefixer],
modules: {
scopeBehaviour: 'global',
},
extract: 'base.css',
use: [
[
'sass',
{
includePaths: ['./node_modules'],
},
],
],
}),
json(),
terser(),
del({ targets: 'build/*' }),
visualizer({
open: true,
}),
],
};
答:
2赞
ArrayConstructor
11/23/2023
#1
可悲的是,图书馆不是摇树的。@carbon/charts-react
(使用 Agadoo 测试)
因此,无论您如何导入,只要它是从中导入的,它就会获取最终捆绑包中的所有内容。index.js
您可以做的是像这样导入:
import RadarChartCarbon from 'Relative/path/to/node_modules/@carbon/charts-react/dist/charts/RadarChart';
这样,您只会在最终捆绑包中获取所需的图表。
希望对您有所帮助!:)
评论