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图片没有啦。到这里大功告成!!!

相关推荐
Slice_cy11 小时前
Mint 自研框架设计与实现:从重复开发走向配置驱动(五)
前端·后端·架构
寒水馨11 小时前
Windows下载、安装 Tailwind CSS-v4.3.3(附安装包tailwindcss-windows-x64.exe)
前端·css·前端开发·tailwind css·utility-first·css 框架·独立 cli
西楼_11 小时前
一文读懂React19究竟更新了什么
前端
四眼肥鱼11 小时前
【Nextjs】macos 系统运行报错:Error: Cannot find module '../lightningcss.darwin-x64.node'
前端·架构·前端框架
hoLzwEge11 小时前
Unplugin Turbo Console:让你的 `console.log` 脱胎换骨
前端·前端框架
dota李天王12 小时前
简单的 socket 实现
前端·javascript·websocket
盏灯12 小时前
nvm 无法拉取最新办法解决办法
前端
WeilinerL12 小时前
CodeGraph:让AI理解代码仓库的神器
前端·人工智能
小四的小六12 小时前
WebView到AI产品,最值得掌握的3个核心能力——从自己产品里总结的能力地图
前端·ai编程·webview