uni-app build:h5-test 多环境打包异常问题

发布于 1周前 作者 bupafengyu 来自 Uni-App

uni-app build:h5-test 多环境打包异常问题

| 开发环境 | 版本号 | 项目创建方式 |
|----------|--------|--------------|
| Windows  | 无关   | HBuilderX     |

# 操作步骤:
请看bug描述

# 预期结果:
请看bug描述

# 实际结果:
请看bug描述

## bug描述:
操作记录:package.json > scripts 增加命令如下
```sh
"build:h5-test": "cross-env NODE_ENV=test UNI_PLATFORM=h5 vue-cli-service uni-build"

运行命令打包:生成文件为开发环境下的文件,并且文件被放在了dist > dev 目录下 期望结果:打包生成生成环境文件,文件应放在dist > build 目录下


1 回复

uni-app 项目中,使用 build:h5-test 进行多环境打包时出现异常问题,可能是由于以下原因导致的。以下是一些常见的排查步骤和解决方案:


1. 检查环境配置文件

uni-app 支持多环境配置,通常通过 process.env.NODE_ENV 或自定义环境变量来区分。确保你的环境配置文件正确设置。

  • 检查 package.json 中的 scripts,确保 build:h5-test 正确引用了环境变量。
    "scripts": {
      "build:h5-test": "cross-env NODE_ENV=test uni build -p h5"
    }
  • 检查 env 目录下的环境配置文件(如 test.env.js),确保配置正确。
    module.exports = {
      NODE_ENV: 'test',
      BASE_URL: 'https://test-api.example.com'
    };

2. 检查环境变量使用

在代码中,确保正确使用了环境变量。例如:

const baseUrl = process.env.BASE_URL || 'https://default-api.example.com';

如果环境变量未正确注入,可能会导致打包异常。


3. 检查 manifest.json 配置

manifest.json 中,h5 的配置可能会影响打包行为。确保以下配置正确:

"h5": {
  "publicPath": "./",
  "router": {
    "mode": "hash"
  }
}

如果 publicPathrouter 配置错误,可能会导致打包后无法正常运行。


4. 检查依赖问题

确保项目中使用的依赖版本兼容当前 uni-app 版本。可以尝试以下操作:

  • 删除 node_modulespackage-lock.json,重新安装依赖:
    rm -rf node_modules package-lock.json
    npm install
  • 更新 uni-app 和相关插件到最新版本:
    npm update uni-app [@dcloudio](/user/dcloudio)/uni-cli-shared

5. 检查打包日志

在打包过程中,查看终端输出的日志,寻找可能的错误信息。常见的错误包括:

  • 文件路径错误
  • 依赖缺失
  • 环境变量未正确注入

6. 清理缓存

如果之前打包过其他环境,可能会存在缓存问题。尝试清理缓存后重新打包:

npm run clean:cache
npm run build:h5-test

7. 自定义 vue.config.js

如果你在项目中使用了 vue.config.js,确保其中的配置不会影响打包行为。例如:

module.exports = {
  configureWebpack: {
    devtool: 'source-map'
  }
};

8. 测试环境与生产环境差异

如果问题仅在 test 环境中出现,检查 test 环境与 production 环境的差异,例如:

  • API 地址是否正确
  • 是否启用了调试模式
  • 是否有额外的插件或配置

9. 调试模式

test 环境中启用调试模式,查看运行时是否有错误:

// main.js
if (process.env.NODE_ENV === 'test') {
  console.log('Running in test mode');
}
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!