第 2 篇:入门实操|3dtubetilecreater 环境搭建全教程(零踩坑版)

作为3dtubetilecreater系列文章的第二篇,本文将聚焦「环境搭建」这一核心入门环节,结合项目实际代码(Gitee地址:https://gitee.com/rzcgis/3dtubetilecreater),从前置环境准备、项目部署、常见问题排查三个维度,提供零踩坑的完整实操教程,所有步骤均经过本地实测验证,适配项目最新代码(1个月前最新提交,核心变更为`tube→pipe`命名统一),新手可直接照搬操作,快速完成项目部署与启动。

本文所有操作均基于Windows系统(Linux/Mac系统操作逻辑一致,仅命令行细节略有差异),核心目标:完成从「环境准备」到「前后端启动」的全流程,最终成功访问前端操作页面(http://localhost:8080)和后端API(http://localhost:3000)。

一、前置环境准备(必看,避坑关键)

项目运行依赖4个核心环境,需严格按照版本要求安装,避免因版本不兼容导致启动失败,以下是具体安装步骤和避坑点,结合项目package.json和README文档要求编写。

1. Node.js(v24.2.0 或更高版本)

安装步骤
  1. 下载地址:https://nodejs.org/zh-cn/download/current/(选择Windows Installer,64位);

  2. 安装过程:双击安装包,勾选「Add to PATH」(自动配置环境变量,关键!),其余默认下一步即可;

  3. 验证安装:打开命令行(CMD/PowerShell),输入以下命令,显示版本≥v24.2.0即为成功:

    bash 复制代码
    node -v  # 输出示例:v24.2.0
    npm -v   # 输出示例:10.8.1(配套版本,无需单独安装)
避坑点
  • 禁止安装低于v24.2.0的版本:项目package.json中依赖的Express、Vue等包需高版本Node.js支持,低版本会导致依赖安装失败;
  • 若已安装低版本Node.js:建议使用nvm(Node版本管理工具)切换版本,避免卸载重装影响其他项目。

2. PostgreSQL + PostGIS(空间数据库核心)

安装步骤
  1. 下载地址:https://postgis.net/windows_downloads/(选择「PostgreSQL 16 + PostGIS 3.4」组合包,适配项目数据存储需求);

  2. 安装过程:

    • 安装PostgreSQL:设置数据库超级管理员密码(记牢,后续配置需要),端口默认5432(建议不修改,避免后续配置麻烦);
    • 安装PostGIS扩展:安装完成后,启动PostgreSQL服务,打开「pgAdmin 4」,连接数据库,右键点击「数据库」→「创建」→「数据库」(命名建议:pipeline_3d,可自定义);
    • 启用PostGIS扩展:选中创建的数据库,点击「扩展」→「创建」→「扩展」,搜索「postgis」,选中后点击「确定」,启用空间扩展(核心!无此步骤会导致管线数据无法读取)。
  3. 验证安装:连接数据库后,执行以下SQL语句,无报错即成功:

    sql 复制代码
    SELECT postgis_version();  -- 输出PostGIS版本,示例:3.4.2
避坑点
  • 必须启用PostGIS扩展:项目后端核心依赖PostGIS读取空间数据(MultiLineStringZ、PointZ),未启用会导致后端连接数据库后无法执行空间查询;
  • 密码记牢:后续修改server/config.json需填写数据库密码,遗忘会导致连接失败。

3. pg2b3dm(管线主体瓦片转换工具)

安装步骤
  1. 下载地址:https://github.com/Geodan/pg2b3dm/releases(选择最新版本的Windows二进制包,如`pg2b3dm-windows-amd64.zip`);

  2. 安装配置:

    • 解压压缩包,将解压后的文件夹(如pg2b3dm-windows-amd64)放在任意路径(建议放在C:\Program Files下,路径无中文、无空格);
    • 配置环境变量:右键「此电脑」→「属性」→「高级系统设置」→「环境变量」→「系统变量」→「Path」→「编辑」,添加pg2b3dm的解压路径(如C:\Program Files\pg2b3dm-windows-amd64);
  3. 验证安装:命令行输入以下命令,显示帮助信息即成功:

    bash 复制代码
    pg2b3dm --help
避坑点
  • 路径无中文、无空格:否则会导致后端调用工具时出现路径识别错误;
  • 环境变量配置后需重启命令行:否则配置不生效,无法识别命令。

4. i3dm.export(附属设施瓦片转换工具)

安装步骤
  1. 下载地址:https://github.com/CesiumGS/i3dm.export/releases(选择最新版本的Windows二进制包);

  2. 安装配置:与pg2b3dm一致,解压后放在无中文、无空格路径,添加环境变量,重启命令行;

  3. 验证安装:命令行输入以下命令,显示帮助信息即成功:

    bash 复制代码
    i3dm-export --help
避坑点
  • 与pg2b3dm配置逻辑一致,重点注意路径和环境变量配置;

  • 若下载失败,可通过npm全局安装(备用方案):

    bash 复制代码
    npm install -g i3dm.export

二、项目部署步骤(结合实际代码,全程实操)

前置环境验证通过后,开始部署项目,所有命令均来自项目package.json配置,步骤如下:

1. 拉取项目代码(从Gitee)

打开命令行,切换到任意空目录(建议路径无中文、无空格,如D:\Projects),执行以下命令拉取代码:

bash 复制代码
# 克隆项目代码
git clone https://gitee.com/rzcgis/3dtubetilecreater.git
# 进入项目目录
cd 3dtubetilecreater
避坑点

2. 安装项目依赖(一键安装,无需手动配置)

项目package.json中已配置好依赖安装脚本(npm run setup),可一键安装前后端所有依赖,无需分别进入client和server目录手动安装,命令如下:

bash 复制代码
# 一键安装前后端依赖(核心命令,来自项目package.json)
npm run setup
核心代码解析(贴合项目实际)

项目package.jsonsetup脚本的核心逻辑(无需修改,仅作理解):

json 复制代码
{
  "scripts": {
    "setup": "npm install && cd client && npm install && cd ../server && npm install",
    "dev": "concurrently \"npm run server\" \"npm run client\"",
    "server": "node server/index.js",
    "client": "cd client && npm run serve"
  }
}
  • npm run setup:先安装项目根目录依赖,再分别进入client(前端)和server(后端)目录安装各自依赖,简化操作;
  • 若手动安装:可分别进入client和server目录,执行npm install,效果一致,但不如一键脚本高效。
避坑点
  • 依赖安装失败:大概率是Node.js版本过低,或网络问题;
    • 版本问题:重新安装v24.2.0+版本Node.js,删除node_modules文件夹后重新执行npm run setup
    • 网络问题:切换npm镜像(淘宝镜像),执行npm config set registry https://registry.npm.taobao.org/,再重新安装。

3. 启动项目(三种启动方式,按需选择)

项目支持「同时启动前后端」「单独启动后端」「单独启动前端」三种方式,命令均来自项目package.json,结合实际开发场景选择:

方式1:同时启动前后端(推荐,新手首选)
bash 复制代码
# 同时启动前端(8080端口)和后端(3000端口)
npm run dev

启动成功后,命令行会显示两个服务的启动信息:

  • 前端:App running at: http://localhost:8080
  • 后端:Server running on port 3000
方式2:单独启动后端(开发后端时使用)
bash 复制代码
# 仅启动后端服务(3000端口)
npm run server

启动成功提示:Server running on port 3000,可通过http://localhost:3000访问后端API(默认返回接口状态,无报错即正常)。

方式3:单独启动前端(开发前端时使用)
bash 复制代码
# 仅启动前端服务(8080端口)
npm run client

启动成功提示:App running at: http://localhost:8080,此时前端会因未连接后端而无法正常使用转换功能,仅用于前端页面开发。

避坑点
  • 端口冲突:若8080或3000端口被其他程序占用,启动会失败;
    • 解决方案:关闭占用端口的程序(如关闭其他Vue项目、Node服务),或修改配置文件(后续会讲);
  • 启动后报错:若提示「pg2b3dm/i3dm.export 不是内部或外部命令」,说明环境变量配置未生效,重启命令行后重新启动。

4. 验证部署成功(关键步骤)

启动项目后,通过以下两个地址验证,均能正常访问即部署成功:

1. 前端页面验证

打开浏览器,访问:http://localhost:8080,能看到项目操作界面(参考项目examples目录下的操作页面截图),无报错、能正常加载即为成功。

2. 后端API验证

打开浏览器或Postman,访问:http://localhost:3000,若返回接口状态(如{"status":"success","msg":"server running"}),即为后端启动正常(具体返回内容取决于后端index.js代码,无需纠结,无报错即可)。

三、常见问题排查(零踩坑核心,结合项目实际)

结合项目开发和部署过程中遇到的问题,整理以下4类高频问题,提供具体解决方案,均贴合项目代码配置:

1. 依赖安装失败(最常见)

  • 问题现象:执行npm run setup时,出现「npm ERR!」报错,提示依赖安装失败;
  • 排查思路:Node.js版本过低、网络问题、依赖包缓存问题;
  • 解决方案:
    1. 确认Node.js版本≥v24.2.0,若低于则升级;
    2. 清除npm缓存:npm cache clean --force
    3. 切换淘宝镜像:npm config set registry https://registry.npm.taobao.org/
    4. 删除项目根目录、client、server目录下的node_modulespackage-lock.json,重新执行npm run setup

2. 后端启动失败,提示「无法连接PostgreSQL」

  • 问题现象:执行npm run server后,报错「could not connect to postgres」;
  • 排查思路:数据库配置错误、PostgreSQL服务未启动、PostGIS扩展未启用;
  • 解决方案:
    1. 检查PostgreSQL服务是否启动:打开「服务」,找到「postgresql-x64-16」(版本可能不同),确保状态为「正在运行」;

    2. 修改后端配置文件:打开server/config.json(项目核心配置文件),修改数据库连接信息,与安装PostgreSQL时的配置一致:

      json 复制代码
      {
        "db": {
          "host": "localhost",
          "port": 5432,
          "database": "pipeline_3d",  // 与你创建的数据库名一致
          "user": "postgres",         // 默认超级管理员用户名
          "password": "123456"        // 安装时设置的数据库密码
        },
        "port": 3000,                 // 后端端口,可修改
        "pg2b3dmPath": "",            // 若环境变量配置生效,无需填写
        "i3dmExportPath": ""          // 若环境变量配置生效,无需填写
      }
    3. 确认PostGIS扩展已启用:重新执行SELECT postgis_version();,无报错即可。

3. 端口冲突,启动失败

  • 问题现象:启动时提示「EADDRINUSE: address already in use :::8080」(或3000端口);
  • 解决方案:
    • 方案1:关闭占用端口的程序:打开命令行,执行netstat -ano | findstr "8080",找到占用端口的进程ID,在任务管理器中结束该进程;
    • 方案2:修改端口:
      • 前端端口(8080):修改client/vue.config.js中的devServer.port

        javascript 复制代码
        module.exports = {
          devServer: {
            port: 8081,  // 改为未占用的端口,如8081
            proxy: {
              '/api': {
                target: 'http://localhost:3000',  // 后端端口,若后端端口修改,此处需同步
                changeOrigin: true,
                pathRewrite: { '^/api': '' }
              }
            }
          }
        }
      • 后端端口(3000):修改server/config.json中的port,改为未占用的端口(如3001),同时修改前端vue.config.js中的target端口,保持一致。

4. 前端能访问,后端API无法访问(跨域问题)

  • 问题现象:前端页面加载正常,但点击转换按钮时,提示「跨域请求失败」;

  • 排查思路:前端代理配置错误,未正确转发API请求;

  • 解决方案:检查client/vue.config.js中的代理配置,确保与后端端口一致:

    javascript 复制代码
    module.exports = {
      devServer: {
        port: 8080,
        proxy: {
          '/api': {
            target: 'http://localhost:3000',  // 后端端口,与server/config.json中的port一致
            changeOrigin: true,  // 开启跨域代理,关键!
            pathRewrite: { '^/api': '' }
          }
        }
      }
    }

修改后,重启前端服务(npm run client),即可解决跨域问题。

四、后续预告

本文已完成3dtubetilecreater项目的环境搭建全流程,涵盖前置环境、项目部署、问题排查,所有步骤均结合项目实际代码和最新提交,新手可直接照搬操作。

下一篇文章(第3篇)将深入拆解项目前后端架构,重点解析clientserver目录结构、Express接口设计、Vue+Cesium集成逻辑,结合核心代码片段,带你读懂项目的架构设计思路,敬请关注。

项目联动

相关推荐
chipsense1 天前
Sensor Shenzhen 2026技术风向标:从3D霍尔到TMR融合的传感器演进路径
大数据·3d·传感器技术·传感器
tctasia1 天前
TCT Awards 2026 获奖名单发布:年度增材制造创新全景一览
3d·制造
m0_743106461 天前
【浙大&南洋理工最新综述】Feed-Forward 3D Scene Modeling(一)
论文阅读·人工智能·计算机视觉·3d·几何学
沙振宇1 天前
【Web】使用Vue3+PlayCanvas开发3D游戏(十一)渲染3D高斯泼溅效果
前端·游戏·3d
GISBox1 天前
三大维度焕新!GISBox2.2.0新增三维重建模块与性能优化
gis·三维重建·gisbox·rvt·服务数据缓存·ktx2·win7系统
boss-dog1 天前
3D视觉机器人中手眼标定的精度提升方法记录——ICP算法
算法·3d·机器人·手眼标定·icp
三毛的二哥1 天前
障碍物遮挡判断算法
人工智能·算法·计算机视觉·3d
动恰客流管家1 天前
动恰3DV3丨客流统计系统:工业农业文旅类景区智慧客流解决方案
大数据·人工智能·3d
ZC跨境爬虫1 天前
3D地球卫星轨道可视化平台开发Day2(轨道错位Bug修复+模块化结构优化)
前端·3d·html·json·bug
ZC跨境爬虫1 天前
3D 地球卫星轨道可视化平台开发 Day1(3D 场景、卫星渲染与筛选交互实现)
前端·3d·html·json·交互