uni-app VUE3 配置 JS文件混淆后 打包白屏 调试正常

uni-app VUE3 配置 JS文件混淆后 打包白屏 调试正常

类别 信息
产品分类 uniapp/App
PC开发环境 Windows
PC版本号 windows10 企业版 LTSC
HBuilderX类型 正式
HBuilderX版本 4.08
手机系统 Android
手机版本号 Android 13
手机厂商 小米
手机机型 红米NOTE10 pro
页面类型 vue
vue版本 vue3
打包方式 云端
项目创建方式 HBuilderX

示例代码:

mainPage.vue 文件内容如下:  
<template>
<view class="stl_button">
<view class="stl_button_item">
<view v-for="(item, index) in global.button">
<button size="mini" style="color:#ffffff; backgroundColor:rgb(0, 205, 172)">{{item.name}}</button>
</view>
</view>
</view>
</template>  
```js
<script setup>
import global       from '../common/globalData.js'
</script>  
```

`


更多关于uni-app VUE3 配置 JS文件混淆后 打包白屏 调试正常的实战教程也可以访问 https://www.itying.com/category-93-b0.html

8 回复

HBuilderX 4.14.2024042905-alpha 已修复。

更多关于uni-app VUE3 配置 JS文件混淆后 打包白屏 调试正常的实战教程也可以访问 https://www.itying.com/category-93-b0.html


正式版啥时候更新呀

有没有巨佬回复一下啊,解决了100元话费

4.14会解决该问题,马上就会发版

回复 DCloud_UNI_FengXY: 正式版还是alpha呀?

回复 DCloud_UNI_FengXY: 多谢巨佬

在使用 uni-app 和 Vue 3 进行开发时,如果你在配置了 JavaScript 文件混淆后,打包出来的应用出现白屏问题,但调试时正常,这通常是由于混淆过程中某些关键代码被错误地修改或删除所导致的。以下是一些可能的原因和解决方案:

1. 检查混淆配置

  • 混淆工具配置:如果你使用了如 terseruglify-js 等混淆工具,检查其配置是否过于激进。特别是 mangle 选项可能会导致某些关键变量名被混淆,从而引发问题。

    // 例如在 vue.config.js 中配置 terser
    module.exports = {
      configureWebpack: {
        optimization: {
          minimizer: [
            new TerserPlugin({
              terserOptions: {
                mangle: false, // 禁用变量名混淆
              },
            }),
          ],
        },
      },
    };
    
  • 排除特定文件或代码:如果某些文件或代码片段不能被混淆,可以通过配置排除它们。

    new TerserPlugin({
      exclude: /node_modules/, // 排除 node_modules 目录
      terserOptions: {
        compress: {
          drop_console: true, // 删除 console.log
        },
      },
    });
    

2. 检查 Vue 3 相关配置

  • Vue 3 的 defineComponent:确保所有的 Vue 组件都使用了 defineComponent,这有助于 Vue 在混淆后正确识别组件。

    import { defineComponent } from 'vue';
    
    export default defineComponent({
      // 组件选项
    });
    
  • Vue 3 的 refreactive:确保在使用 refreactive 时,变量名没有被混淆掉。可以尝试禁用混淆或使用 /*#__PURE__*/ 注释来保护这些变量。

    const myVar = /*#__PURE__*/ ref(0);
    

3. 检查 uni-app 相关配置

  • uni-app 的 manifest.json:确保 manifest.json 中的配置没有错误,特别是 app-plush5 相关配置。
  • uni-app 的 pages.json:检查路由配置是否正确,确保所有页面路径正确且没有被混淆。

4. 调试和排查

  • 启用 Source Map:在打包时启用 Source Map,这样可以在生产环境中调试混淆后的代码。
    // vue.config.js
    module.exports = {
      productionSourceMap: true,
    };
    
  • 逐步排查:可以尝试逐步排除混淆的代码,找到导致问题的具体代码片段。例如,先禁用混淆,然后逐步启用,观察问题出现的位置。

5. 其他建议

  • 检查依赖版本:确保所有依赖的版本兼容,特别是 Vue 3 和 uni-app 的版本。
  • 清理缓存:有时缓存可能导致问题,尝试清理构建缓存并重新打包。
    rm -rf node_modules/.cache
回到顶部