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

一、前置准备(避免打包/启动报错)
  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)。

相关推荐
少年姜太公3 小时前
什么?还不知道git cherry pick?
前端·javascript·git
白兰地空瓶4 小时前
🏒 前端 AI 应用实战:用 Vue3 + Coze,把宠物一键变成冰球运动员!
前端·vue.js·coze
Liu.7745 小时前
vue3使用vue3-print-nb打印
前端·javascript·vue.js
松涛和鸣6 小时前
Linux Makefile : From Basic Syntax to Multi-File Project Compilation
linux·运维·服务器·前端·windows·哈希算法
dly_blog6 小时前
Vue 逻辑复用的多种方案对比!
前端·javascript·vue.js
万少7 小时前
HarmonyOS6 接入分享,原来也是三分钟的事情
前端·harmonyos
烛阴7 小时前
C# 正则表达式:量词与锚点——从“.*”到精确匹配
前端·正则表达式·c#
wyzqhhhh7 小时前
京东啊啊啊啊啊
开发语言·前端·javascript
JIngJaneIL7 小时前
基于java+ vue助农电商系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot·后端
q_19132846957 小时前
基于Springboot+MySQL+RuoYi的会议室预约管理系统
java·vue.js·spring boot·后端·mysql·若依·计算机毕业设计