gpt4 book ai didi

javascript - 按需导入模块组件

转载 作者:搜寻专家 更新时间:2023-10-30 21:37:34 24 4
gpt4 key购买 nike

我在我的项目中使用了一个库,并加载了我通过 commonjs 模块系统预设的组件。代码如下所示:

let echart = require('echarts/lib/echarts');
require('echarts/lib/chart/scatter');
require('echarts/lib/component/title');
require('echarts/lib/component/toolbox');
require('echarts/lib/component/tooltip');
require('echarts/lib/component/legendScroll');

因此 webpack 生成的包大小为 1.17 MB。

但是,我决定将项目迁移到typescript,从而通过es6的导入来加载lib的组件。代码如下所示:

import * as echarts from 'echarts';
import ECharts = echarts.ECharts;
import EChartOption = echarts.EChartOption;

因此 webpack 生成的包大小为 2.21 MB。因为以这种方式加载所有组件都是导入的,即使是我不使用的组件也是如此。

由于这种不便,我希望能够像在 commonjs 中那样做,有人知道这是否可能以及如何做吗?

最佳答案

您可以像在 CommonJS 中一样进行深度嵌套:

import echarts = require('echarts/lib/echarts')
import 'echarts/lib/chart/scatter'
import 'echarts/lib/component/title'
import 'echarts/lib/component/toolbox'
import 'echarts/lib/component/tooltip'
import 'echarts/lib/component/legendScroll'

如果你在 TypeScript 2.7 中使用 esModuleInterop,你可以在第一行这样做:

import echarts from 'echarts/lib/echarts'

关于javascript - 按需导入模块组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48964201/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com