uniapp 打包之后出现shadow-grey.png去除

使用场景:使用HBuilderX 打包编辑uniapp 项目,但是项目在使用之后出现了以域名为cdn.dcloud.net.cn的默认图片。最可恶的是这些图片只在正式环境才会出现,测试环境反而不会出现。关键是这些文件会存在无法访问等问题,导致加载变慢,无法加载等问题。感觉这快就是毒瘤,必须要清除。

问题定位: 我们查遍自己的代码都没有发现这些图片,然后我们就开始查找源码,在查询的时候在打包文件unpackage中查到了很多这个域名的文件,其中包含了shadow-grey.png图片,这些文件主要是uniapp头部加载进度条的默认色彩;这样一看就是HBuilderX底层代码问题,所以我们就开始在源码文件中查找更改。

接下来就是源码更改步骤,大家记得找到HBuilderX 这个开发工具的安装资源文件哈**。**

解决方案:

在以下文件中,找到对应的图片删除即可,其中最好的就是把这些域名为cdn.dcloud.net.cn的,用不到的图片删除。

**文件一:**ProgramFiles\HBuilderX\plugins\uniapp-cli\node_modules\@dcloudio\uni-mp-360\dist\index.css

**文件二:**ProgramFiles\HBuilderX\plugins\uniapp-cli\node_modules\@dcloudio\uni-h5\src\platforms\h5\components\page\pageHead.vue

**文件三:**ProgramFiles\HBuilderX\plugins\uniapp-cli\node_modules\@dcloudio\uni-h5\dist\index.css

**文件四:**ProgramFiles\HBuilderX\plugins\uniapp-cli\node_modules\@dcloudio\uni-h5\lib\h5\uni.config.js这个文件找到这个方法,更改成这样即可

javascript 复制代码
function transform(content, platformOptions) {
  if (platformOptions.darkmode === true) {
    // darkmode
    try {
      content += fs.readFileSync(
        require.resolve("@dcloudio/uni-h5/dist/index.dark.css")
      );
    } catch (error) {}
  }
  if (process.env.NODE_ENV === "production") {
    return (
      content + // shadow
      "body::after{position:fixed;content:'';left:-1000px;top:-1000px;-webkit-animation:shadow-preload .1s;-webkit-animation-delay:3s;animation:shadow-preload .1s;animation-delay:3s}"
    );
  }
  return content;
}

文件五:ProgramFiles\HBuilderX\plugins\uniapp-cli\node_modules\@dcloudio\uni-cli-shared\lib\platform.js (这个其实我没有更改哈,因为我们是H5 项目,且没用到这里,所以就没改,不过大家可以更改哈)

javascript 复制代码
//在JS文件中查找这个函数,这里的ruturn 的 url 就是我们需要删除的图片,大家更改return就可以了,直接去除shadow-preload这一段样式就可以了
function getShadowCss () {
  let tagName = 'page'
  if (process.env.UNI_PLATFORM === 'h5') {
    tagName = 'body'
  }
  const url = createShadowImageUrl(getShadowCdn(), 'grey')
  return `${tagName}::after{position:fixed;content:'';left:-1000px;top:-1000px;-webkit-animation:shadow-preload .1s;-webkit-animation-delay:3s;animation:shadow-preload .1s;animation-delay:3s}@-webkit-keyframes shadow-preload{0%{background-image:url(${url})}100%{background-image:url(${url})}}@keyframes shadow-preload{0%{background-image:url(${url})}100%{background-image:url(${url})}}`
}
javascript 复制代码
//查看这个函数,这里就是上面url的来源哈,大家也可以在这里更改自己域名,也可以删除
function createShadowImageUrl (cdn, type = 'grey') {
  let identStr = ''
  if (process.env.UNI_PLATFORM !== 'h5' && process.env.UNI_PLATFORM !== 'web') {
    const ident = createIdent(process.env.UNI_PLATFORM)
    identStr = ident ? `${ident}/` : ''
  }
  return `https://cdn${cdn || ''}.dcloud.net.cn/${identStr}img/shadow-${type}.png`
}

结果测试: 好啦,更改完这些文件之后,重新启动HBuilderX软件,重新打包构建文件之后,在查找unpackage文件就会发现这些shadow-grey.png图片没有啦。到这里大功告成!!!

相关推荐
默_笙25 分钟前
🏝 Docker 就是"房地产开发":从施工图纸到小区物业的容器化指南
前端·javascript
计算机魔术师27 分钟前
Rohan Paul 谈用时间跨度衡量智能体能力,并引用 OpenAI 自动化研究实习生里程碑
前端
kyriewen28 分钟前
我手写了个极简版 React Router——才搞懂 v6 为什么砍了这么多 API
前端·javascript·程序员
a11177634 分钟前
Shirone 二次元博客主题 开源
前端·开源
IT_陈寒1 小时前
Python的切片赋值把我坑惨了,这不是bug是特性
前端·人工智能·后端
掘金酱1 小时前
【社区公告】致每一位掘友:关于这次调整, 想再说几句
前端·人工智能
CoderLiu1 小时前
程序化工具调用(PTC)与动态工作流引擎:深入大模型工具调用的架构演进与实践
前端·人工智能·后端
码农胖大海1 小时前
我的第一个产品,只有一段提示词
前端·ai编程·产品
邋遢道1 小时前
# 企业级 Agent 从 0 到 1(二):技术选型与最小骨架
前端·chrome
计算机魔术师2 小时前
我看了 OpenAI 首席科学家的最新长文,把原来的认知推翻了一遍
前端