关于在本地去模拟生产环境检测页面内容注意事项

一、前置准备(避免打包/启动报错)
  1. 确认已安装依赖:

    若项目未装 serve(静态服务器),先全局安装:

    powershell 复制代码
    npm install -g serve

    (若安装失败,可加 --registry https://registry.npm.taobao.org 用淘宝源)

  2. 接口代理修改(核心):

    找到项目中 axios 实例配置文件(通常是 src/utils/request.jssrc/api/request.js),替换为:

    javascript 复制代码
    import axios from 'axios'
    // 临时修改为(模拟生产环境,直接指向后端真实接口)
    const service = axios.create({
      baseURL: 'http://172.20.35.20:8081', // 后端接口基地址(替换原代理地址)
      timeout: 5000,
      // 可选:补充通用请求头(若后端需要)
      headers: {
        'Content-Type': 'application/json;charset=utf-8'
      }
    })
    // 保留原有请求/响应拦截器(若有)
    export default service
  3. 静态资源路径配置(关键!避免打包后资源404):

    找到项目的打包配置文件(Vue项目为 vue.config.js,Vite项目为 vite.config.js,React项目为 package.json/webpack.config.js),确保静态资源根路径为 /

    • Vue2/Vue3(vue.config.js):

      javascript 复制代码
      module.exports = {
        publicPath: '/', // 核心:静态资源根路径(必须改为/,否则serve启动后资源加载失败)
        outputDir: 'dist' // 打包输出目录(默认dist,保持一致)
      }
    • Vite(vite.config.js):

      javascript 复制代码
      export default defineConfig({
        base: '/', // 静态资源根路径
        build: {
          outDir: 'dist'
        }
      })
    • React(package.json):
      确保 homepage 字段为 /(若无则新增):

      json 复制代码
      "homepage": "/"
二、打包+启动静态服务器(PowerShell 环境)
  1. 执行生产环境打包:

    powershell 复制代码
    npm run build:prod

    ✅ 检查:打包完成后确认 dist 目录生成,且内部有 index.htmlstatic/js/css 等文件。

  2. 切换到打包输出目录:

    powershell 复制代码
    cd dist

    ❗ 异常处理:若提示"找不到路径",检查打包命令是否成功,或手动进入项目根目录下的 dist 文件夹。

  3. 临时允许当前PowerShell会话运行脚本(仅本次会话有效,无安全风险):

    powershell 复制代码
    Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process

    ❗ 异常处理:若提示"权限不足",以管理员身份打开PowerShell再执行。

  4. 启动serve静态服务器(-s 表示单页应用模式,适配Vue/React路由):

    powershell 复制代码
    serve -s .

    ✅ 成功标志:终端输出 Local: http://localhost:3000(端口可能不同),浏览器访问该地址即可正常访问项目,且接口能直接调用 http://172.20.35.20:8081

三、补充注意事项(核心避坑点)
  1. 跨域问题:

    若访问 localhost:3000 时接口报跨域,需让后端在 http://172.20.35.20:8081 服务中配置CORS(允许 localhost:3000 跨域),或在后端服务器上部署前端dist文件(同域名访问,无跨域)。

  2. 端口冲突:

    serve -s . 提示端口被占用,可指定端口启动:

    powershell 复制代码
    serve -s . -l 8080 # 用8080端口启动
  3. 打包后接口地址固化:

    本次修改是"临时硬编码",若需要区分环境(开发/测试/生产),建议用环境变量配置(如 .env.prod 文件),避免每次打包改代码:

    • 创建 .env.prod 文件:

      复制代码
      VITE_API_BASE_URL=http://172.20.35.20:8081 # Vite项目
      # 或 Vue项目:VUE_APP_API_BASE_URL=http://172.20.35.20:8081
    • axios配置中读取环境变量:

      javascript 复制代码
      const service = axios.create({
        baseURL: import.meta.env.VITE_API_BASE_URL, // Vite
        // baseURL: process.env.VUE_APP_API_BASE_URL, // Vue
        timeout: 5000
      })
  4. PowerShell 兼容性:

    若用的是旧版PowerShell(如5.1以下),可能不支持部分命令,建议升级PowerShell或改用CMD执行(CMD无需执行 Set-ExecutionPolicy,直接 serve -s . 即可)。

  5. 静态资源校验:

    打包后打开 dist/index.html 若页面空白,检查控制台是否有404(大概率是 publicPath/base 未设为 /),或打包时遗漏资源(重新执行 npm run build:prod)。

相关推荐
2501_9444480028 分钟前
Flutter for OpenHarmony衣橱管家App实战:支持我们功能实现
android·javascript·flutter
人工智能训练6 小时前
【极速部署】Ubuntu24.04+CUDA13.0 玩转 VLLM 0.15.0:预编译 Wheel 包 GPU 版安装全攻略
运维·前端·人工智能·python·ai编程·cuda·vllm
会跑的葫芦怪7 小时前
若依Vue 项目多子路径配置
前端·javascript·vue.js
xiaoqi9227 小时前
React Native鸿蒙跨平台如何进行狗狗领养中心,实现基于唯一标识的事件透传方式是移动端列表开发的通用规范
javascript·react native·react.js·ecmascript·harmonyos
jin1233228 小时前
React Native鸿蒙跨平台剧本杀组队消息与快捷入口组件,包含消息列表展示、快捷入口管理、快捷操作触发和消息详情预览四大核心功能
javascript·react native·react.js·ecmascript·harmonyos
烬头88219 小时前
React Native鸿蒙跨平台实现二维码联系人APP(QRCodeContactApp)
javascript·react native·react.js·ecmascript·harmonyos
pas1369 小时前
40-mini-vue 实现三种联合类型
前端·javascript·vue.js
摇滚侠9 小时前
2 小时快速入门 ES6 基础视频教程
前端·ecmascript·es6
2601_9498333910 小时前
flutter_for_openharmony口腔护理app实战+预约管理实现
android·javascript·flutter
珑墨10 小时前
【Turbo】使用介绍
前端