pc商城

项目介绍

目录结构

复制LaiKeJaveMall
├── common 

│  ├── footer.html  #脚部

│  ├── head.html #头部

│  ├── md5.js 

│  ├── navRight.html #右侧导航

│  ├── zh_CN.js #中文简体

│  ├── zh_EN.js #英文

│  ├── zh_TN.js #繁体

├── css # 样式

│  ├── commom 

│  │  ├── animate.min.css #公共样式

│  │  └── reset.css

│  ├── common.css #公共样式

│  ├── pages #页面样式

│  └── reset.css 

├── index.html 

├── js

│  ├── config.js #接口配置

│  └── vue.js 

├── package-lock.json

├── pages #商城页面

│  ├── address #地址管理

│  │  └── myaddress.html

│  ├── afterSale #售后

│  │  └── management.html

│  ├── assets  #个人资产

│  ├── collection #收藏

│  │  ├── mycollection.html

│  │  └── similar.html

│  ├── coupon   #优惠券

│  ├── home #主页

│  │  └── index.html

│  ├── homeList #商品列表

│  │  ├── homeList.html

│  │  └── homeLoad.html

│  ├── homedetail #商品详情

│  │  └── homedetail.html

│  ├── login #登录

│  │  ├── forgetPassword.html

│  │  ├── login.html

│  │  ├── register.html

│  │  └── setPassword.html

│  ├── mch #店铺申请和主页

│  │  ├── applyShop.html

│  │  └── mch.html

│  ├── message #站内消息

│  │  ├── message.html

│  │  └── messageDetail.html

│  ├── my #个人中心页面

│  │  ├── aboutUs.html

│  │  ├── my.html

│  │  ├── myLoad.html

│  │  └── myinfor.html

│  ├── order #订单相关页面

│  │  ├── afterDetails.html #售后详情

│  │  ├── afterSale.html #售后列表

│  │  ├── evaluationing.html #评价

│  │  ├── myOrder.html #我的订单

│  │  ├── orderDetails.html #订单详情

│  │  └── payment.html #待付款支付

│  ├── pay

│  │  ├── payDetails.html #订单确认

│  │  ├── payResult.html #支付结果

│  │  └── scanCode.html #扫码

│  ├── plug 

│  ├── security  

│  ├── shoppingCart #购物车

├── plugins

│  └── others

│    ├── element-ui

│    ├── jquery.min.js

│    ├── qrcode.min.js

│    └── swiper.animate1.0.3.min.js

└── static #静态资源

  ├── home-img 

  └── images

项目工具

版本 说明
nodejs 14.20.0 下载安装
vscode 最新 开发编辑器
pm2 默认 守护进程

项目部署

后端服务

laike-gateway
laike-admin-store
laike-store-pc

配置修改

1、修改 .env.js,Javaprod环境部分即可

//商城ID
const STORE_ID = 1;
//来源
const STORE_TYPE = 6;
//java环境端口
const JAVA_PORT = 8081
//php环境端口
const PHP_PORT = 8089
//公共部分uri地址
const COMMON_URI = "?store_id=" + STORE_ID + "&store_type=" + STORE_TYPE

module.exports = { 
    ////////////////////////////////////////////// 
    //JAVA 开发环境        需修改部分
    //////////////////////////////////////////////
    java_dev_production: {
      NODE_ENV: 'java_dev_production',
      VUE_APP_LKT_STORE_ID:STORE_ID,
      VUE_APP_STORE_TYPE:STORE_TYPE,
      PUBLIC_PATH:'',//配置router 
      VUE_APP_LKT_MCH_DEFURL:'https://store.think.laiketui.net/#/login',//来客电商PC商城跳转路径PC店铺,填pc店铺后台地址
      VUE_APP_LKT_H5_DEFURL:'https://h5.think.laiketui.net/#/',//来客电商H5默认路径
      VUE_APP_LKT_ROOT_IMG_URL:'https://think.laiketui.net/', //图片资源路径,填网关地址
      VUE_APP_LKT_KEFU_URL:'wss://think.laiketui.net/wss/message/onlineMessage/', //客服 websocket地址
      VUE_APP_BASE_API: 'https://think.laiketui.net/gw', //填网关地址
      PROT:JAVA_PORT,
      LKT_ROOT_URL:"https://think.laiketui.net/gw" + COMMON_URI //填网关地址
    },
    //需修改部分结束
    // JAVA 演示环境
    java_prod_production: {
      NODE_ENV: 'java_prod_production',
      VUE_APP_LKT_STORE_ID:STORE_ID,//商城ID
      VUE_APP_STORE_TYPE:STORE_TYPE,//来源
      PUBLIC_PATH:'',//配置router
      VUE_APP_LKT_MCH_DEFURL:'https://store.think.laiketui.net/#/login',//来客电商PC商城跳转路径PC店铺
      VUE_APP_LKT_H5_DEFURL:'https://h5.think.laiketui.net/#/',//来客电商H5默认路径
      VUE_APP_LKT_ROOT_IMG_URL:'https://think.laiketui.net/', //图片资源路径
      VUE_APP_LKT_KEFU_URL:'wss://think.laiketui.net/wss/message/onlineMessage/', //客服 websocket地址
      VUE_APP_BASE_API: 'https://think.laiketui.net/gw',
      PROT:JAVA_PORT,
      LKT_ROOT_URL:"https://think.laiketui.net/gw"+COMMON_URI
    },
    // JAVA 测试环境
    'java_test_production':{
      NODE_ENV: 'java_test_production',
      VUE_APP_LKT_STORE_ID:STORE_ID,//商城ID
      VUE_APP_STORE_TYPE:STORE_TYPE,//来源
      PUBLIC_PATH:'',//配置router
      VUE_APP_LKT_MCH_DEFURL:'https://java.dev.laiketui.net/mch/login',//来客电商PC商城跳转路径PC店铺
      VUE_APP_LKT_H5_DEFURL:'https://java.dev.laiketui.net/H5',//来客电商H5默认路径
      VUE_APP_LKT_ROOT_IMG_URL:'https://java.dev.laiketui.net/', //图片资源路径
      VUE_APP_LKT_KEFU_URL:'wss://java.dev.laiketui.net/wss/message/onlineMessage/', //客服 websocket地址
      VUE_APP_BASE_API:'https://java.dev.laiketui.net/gw',
      PROT:JAVA_PORT,
      LKT_ROOT_URL:"https://java.dev.laiketui.net/gw"+COMMON_URI
    },
    ////////////////////////////////////////////// 
    //PHP 环境
    //////////////////////////////////////////////
    //本地
    php_dev_production: {
      NODE_ENV: 'php_dev_production',
      VUE_APP_LKT_STORE_ID:STORE_ID,//商城ID
      VUE_APP_STORE_TYPE:STORE_TYPE,//来源
      PUBLIC_PATH:'/mall',//配置router
      VUE_APP_LKT_MCH_DEFURL:'https://tp.dev.laiketui.net/mch/#/login',//来客电商PC商城跳转路径PC店铺
      VUE_APP_LKT_H5_DEFURL:'https://tp.dev.laiketui.net/H5/#/',//来客电商H5默认路径
      VUE_APP_LKT_ROOT_IMG_URL:'https://tp.dev.laiketui.net/', //图 片资源路径
      VUE_APP_LKT_KEFU_URL:'wss://tp.dev.laiketui.net/wss/', //客服 websocket地址
      VUE_APP_BASE_API:'https://tp.dev.laiketui.net',
      PROT:PHP_PORT,
      LKT_ROOT_URL: "/api"+COMMON_URI
    },
    //PHP 生产环境
    php_prod_production: {
      NODE_ENV: 'php_prod_production',
      VUE_APP_LKT_STORE_ID:STORE_ID,//商城ID
      VUE_APP_STORE_TYPE:STORE_TYPE,//来源
      PUBLIC_PATH:'/mall',//配置router
      VUE_APP_LKT_MCH_DEFURL:'https://tp.dev.laiketui.net/mch/#/login',//来客电商PC商城跳转路径PC店铺
      VUE_APP_LKT_H5_DEFURL:'https://tp.dev.laiketui.net/H5/#/',//来客电商H5默认路径
      VUE_APP_LKT_ROOT_IMG_URL:'https://tp.dev.laiketui.net/', //图 片资源路径
      VUE_APP_LKT_KEFU_URL:'wss://tp.dev.laiketui.net/wss/', //客服 websocket地址
      VUE_APP_BASE_API:'https://tp.dev.laiketui.net',
      PROT:PHP_PORT,
      LKT_ROOT_URL:"https://tp.dev.laiketui.net"+COMMON_URI
    },
    //PHP 测试环境
    php_test_production: {
      NODE_ENV: 'php_test_production',
      VUE_APP_LKT_STORE_ID:STORE_ID,//商城ID
      VUE_APP_STORE_TYPE:STORE_TYPE,//来源
      PUBLIC_PATH:'/mall',//配置router
      VUE_APP_LKT_MCH_DEFURL:'https://tp.dev.laiketui.net/mch/#/login',//来客电商PC商城跳转路径PC店铺
      VUE_APP_LKT_H5_DEFURL:'https://tp.dev.laiketui.net/H5/#/',//来客电商H5默认路径
      VUE_APP_LKT_ROOT_IMG_URL:'https://tp.dev.laiketui.net/', //图 片资源路径
      VUE_APP_LKT_KEFU_URL:'wss://tp.dev.laiketui.net/wss/', //客服 websocket地址
      VUE_APP_BASE_API:'https://tp.dev.laiketui.net',
      PROT:PHP_PORT,
      LKT_ROOT_URL: "https://tp.dev.laiketui.net"+COMMON_URI
    }
   }

打包部署

执行npm run build打包命令后会生成一个.nuxt的文件夹,首次部署需要在宝塔上传入如下几个文件,并且打开终端下载依赖。之后部署正常情况没有修改assets、plugins、static、nuxt.config.js、package-lock.json、package.json里面的内容,每次打包只需要上传.nuxt文件上去即可(部署完需要重启pm2进程)

# 拉依赖
npm i


# Java打包
# Java生产环境
# npm run java:prod
# Java测试环境
# npm run java:test


# PHP打包
# PHP生产环境
 npm run php:prod
 # PHP测试环境
 #npm run php:test

打包之后,将1-9打包上传到服务器指定文件夹

. 
├── 1、.nuxt 
├── README.md
├── api
├── app
├── 2、assets//若有修改的情况每次打包后需要上传到服务器;没有修改的情况只需要第一次上传到服务器
├── babel.config.js
├── components
├── ecosystem.config.js
├── 9、env.js
├── jsconfig.json
├── layouts
├── 6、node_modules //如果不想在服务器下载则这个包也可以一起打包上传到服务器【如果服务器下载则非必须】
├── 3、nuxt.config.js//若有修改的情况每次打包后需要上传到服务器;没有修改的情况只需要第一次上传到服务器
├── 7、package-lock.json //若有修改的情况每次打包后需要上传到服务器;没有修改的情况只需要第一次上传到服务器
├── 8、 package.json //若有修改的情况每次打包后需要上传到服务器;没有修改的情况只需要第一次上传到服务器
├── pages
├── 4、plugins//若有修改的情况每次打包后需要上传到服务器;没有修改的情况只需要第一次上传到服务器
├── 5、static//若有修改的情况每次打包后需要上传到服务器;没有修改的情况只需要第一次上传到服务器
├── store
├── utils
└── yarn.lock

第一次部署服务器端启动:

# 请在文件上传路径执行以下命令!也就是与.nuxt同级的目录!
# 服务器安装 pm2
npm install pm2 -g 

# JAVA  刚刚启动的进程,服务启动成功后有个地址,需要在域名下做代理,即可完成部署
# pm2 delete java-mall
# pm2 start npm --name "java-mall" -- run java:ps

# PHP  刚刚启动的进程,服务启动成功后有个地址,需要在域名下做代理,即可完成部署
pm2 delete laike-mall
pm2 start npm --name "laike-mall" -- run php:ps
pm2 save

非第一次部署:

更改了其中内容后都需要重启pm2服务,命令 pm2 restart 0 (0是需要重启的序号)

#### 查看服务列表
[root@java java.web.houjiemeishi.com]# pm2 list
┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐
│ id │ name               │ mode     │ ↺    │ status    │ cpu      │ memory   │
├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤
│ 0  │ mall               │ fork     │ 84   │ online    │ 0%       │ 55.9mb   │
└────┴────────────────────┴──────────┴──────┴───────────┴──────────┴──────────┘
[PM2][WARN] Current process list is not synchronized with saved list. App nuxt-pcsc differs. Type 'pm2 save' to synchronize.
 # 重启指定服务编号
[root@java java.web.houjiemeishi.com]# pm2 restart 0
Use --update-env to update environment variables
[PM2] Applying action restartProcessId on app [0](ids: [ '0' ])
[PM2] [mall](0) ✓
┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐
│ id │ name               │ mode     │ ↺    │ status    │ cpu      │ memory   │
├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤
│ 0  │ mall               │ fork     │ 85   │ online    │ 0%       │ 19.8mb   │
└────┴────────────────────┴──────────┴──────┴───────────┴──────────┴──────────┘
[PM2][WARN] Current process list is not synchronized with saved list. App nuxt-pcsc differs. Type 'pm2 save' to synchronize.

启动之后可以直接暴漏端口用ip:port访问 ; 或者通过nginx 配置代理 ip:port 来访问。

 location /pc {
      proxy_pass http://npm start启动时候控制台出来的ip:端口; //例如:proxy_pass http://172.21.125.47:8081; 
 }

PM2 是一个进程管理工具,它可以帮助我们管理 Node.js 进程。PM2 可以监控应用程序并自动重启它们,也可以在集群模式下负载均衡进程。除此之外,PM2 还提供了很多有用的功能,比如日志管理、进程监控、应用程序部署等。

pm2基本用法:

1启动应用程序

使用 PM2 启动应用程序非常简单,只需要在命令行中执行以下命令即可:

pm2 start

其中,app.js 是我们要启动的应用程序的入口文件。执行该命令后,PM2 会启动该应用程序,并在后台运行。

查看应用程序列表

使用 PM2 启动的应用程序可以通过以下命令查看:

pm2 list

该命令会列出所有使用 PM2 启动的应用程序。

停止应用程序

如果我们需要停止某个应用程序,可以使用以下命令:

pm2 stop app

其中,app 是要停止的应用程序的名称或 ID。如果我们想要停止所有使用 PM2 启动的应用程序,可以使用以下命令:

pm2 stop all

重启应用程序

如果我们需要重启某个应用程序,可以使用以下命令:

pm2 restart app

其中,app 是要重启的应用程序的名称或 ID。如果我们想要重启所有使用 PM2 启动的应用程序,可以使用以下命令:

pm2 restart all

删除应用程序

如果我们需要删除某个应用程序,可以使用以下命令:

pm2 delete app

其中,app 是要删除的应用程序的名称或 ID。如果我们想要删除所有使用 PM2 启动的应用程序,可以使用以下命令:

pm2 delete all

查看应用程序日志

使用 PM2 启动的应用程序会自动记录日志,我们可以使用以下命令查看应用程序的日志:

pm2 logs app

其中,app 是要查看日志的应用程序的名称或 ID。该命令会输出应用程序的日志,可以通过 Ctrl+C 停止查看。

访问

Copyright © www.laiketui.com all right reserved,powered by Gitbook该文件修订时间: 2025-03-31 10:30:36

results matching ""

    No results matching ""