自动辨别在不同环境是否启用CDN加速

提示:不同环境是指开发环境或生产环境


前言

为了能够区分生产环境(打包)时使用 CDN 加速包使 dist 瘦身,开发环境使用自己下载的包。


直接上代码吧,就不解释了

一、步骤1(修改vue.config.js)

  • 影响打包时,index.html 引入其他资源的前缀地址
  • ./ 可以让开发环境和生产环境都可以正常使用,为了严谨一些还是要换回来
  • 开发环境: '/'
  • 生产环境: './'
  • node 里有个内置的环境变量 process.env.NODE_ENV
  • process.env.NODE_ENV 它会根据你敲击的命令,来使用不同的值解决:
  • 如果你敲击 npm run serverprocess.env.NODE_ENV 的值就是 'development' 字符串
  • 如果你敲击 npm run buildprocess.env.NODE_ENV 的值就是 ’production' 字符串
const {
   defineConfig} = require('@vue/cli-service')
// 需要排除的包,对象
let externals = {
   }
//需要配置的CDN链接
let CDN = {
   css: [], js: []}
// 判断是否是生产环境
const isProduction = process.env.NODE_ENV === 'production'
// 如果是生产环境,需要执行以下逻辑
if (isProduction) {
   
  externals = {
   
    /**
  
### 关于ECharts Canvas内边距问题的解决方案 在使用 ECharts 的过程中,有时会遇到图表内部存在不必要的空白区域或内边距的情况。这通常是由 `grid` 或其他布局配置不当引起的。以下是具体的分析和解决方法: #### 1. 调整 Grid 布局参数 ECharts 提供了一个名为 `grid` 的选项来控制图表绘制区域的位置和大小。通过调整 `left`, `right`, `top`, 和 `bottom` 参数可以有效减少或消除多余的内边距。 ```javascript var option = { grid: { left: '0%', // 左侧间距设置为 0% right: '0%', // 右侧间距设置为 0% top: '0%', // 上方间距设置为 0% bottom: '0%' // 下方间距设置为 0% }, xAxis: {}, yAxis: {}, series: [{ type: 'bar', data: [5, 20, 36, 10, 10, 20] }] }; ``` 上述代码中的 `grid.left`, `grid.right`, `grid.top`, 和 `grid.bottom` 设置为了 `'0%'`,表示紧贴容器边缘[^1]。 --- #### 2. 修改全局边界间隙 默认情况下,ECharts 图表会在数据点周围保留一定的空间以防止溢出。如果希望完全移除这些额外的空间,可以通过设置 `containLabel` 来实现更精确的控制。 ```javascript var option = { grid: { containLabel: true // 自动扩展网格范围以适应标签 } }; ``` 启用 `containLabel` 后,网格将自动适配坐标轴上的最大最小值以及标签长度,从而避免多余留白[^2]。 --- #### 3. 使用 Canvas 渲染优化 虽然大多数时候 ECharts 默认渲染方式已经能够满足需求,但在某些特殊场景下(比如高分辨率屏幕),可能会因为像素缩放比例导致视觉偏差或者微小的内边距现象。此时可以选择强制指定 SVG 或者更高精度的 Canvas 渲染模式。 ```javascript // 初始化时显式声明 renderer 类型 var myChart = echarts.init(document.getElementById('main'), null, {renderer: 'canvas'}); ``` 此操作有助于改善因浏览器兼容性引发的小幅偏移问题[^3]。 --- #### 注意事项 尽管以上措施能显著缓解甚至彻底清除 ECharts 中存在的内边距困扰,但仍需注意以下几点: - **响应式设计**:确保父级 DOM 容器具有明确的高度宽度定义; - **动态加载数据后的重新计算**:每当有新数据注入到实例对象后记得调用 `setOption()` 方法刷新视图; 最后附上一段完整的示例代码用于实践验证效果: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>ECharts 边距测试</title> <!-- 引入 echarts 文件 --> <script src="https://cdn.jsdelivr.net/npm/echarts/dist/echarts.min.js"></script> </head> <body> <div id="chart" style="width: 600px; height: 400px;"></div> <script type="text/javascript"> var chartDom = document.getElementById('chart'); var myChart = echarts.init(chartDom); var option = { tooltip: {}, legend: [], grid: { left: '0%', right: '0%', top: '0%', bottom: '0%', containLabel: true }, xAxis: [{type: 'category', boundaryGap: false}], yAxis: [{type: 'value'}], series: [ { name:'模拟数据', type:'line', smooth:true, data:[120, 200, 150, 80, 70, 110, 130] } ] }; myChart.setOption(option); </script> </body> </html> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿超学编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值