# car_react **Repository Path**: als2014/car_react ## Basic Information - **Project Name**: car_react - **Description**: 车服react版本 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-07-17 - **Last Updated**: 2023-05-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 版本历史 [详见release_note.md](./release_note.md) ## 开发 项目的NODE_ENV环境变量有production, local, development三个值,对应的配置文件后缀分别为prod,dev,local 本地开发用的local模式,dev是测试环境,prod是生产环境 1. 下载代码 2. npm install 3. npm run local (linux和mac下如果是80端口需要加sudo) ## 项目采用同构方案,实现了服务器端渲染ssr ### webpack目录为webpack的配置 - plugin.js 插件的作用是生成server用的 server/static/tpl.ejs,目的是把webpack的文件hash带入服务器render,做版本控制 - webpack.common.js 是通用的配置 - webpack.client.js 是编译client代码 - webpack.server.js 编辑server代码 - webpack.build.js 同时编译client和server代码 ### server为服务器代码 - config下面是所有的配置文件 ### client为浏览器端代码 ### common为公用代码 ## 项目的部署 正式版本的代码目前每次发布都在master分支上有对应的release tag 正式环境和测试环境都在同一个域名m.youyuer.com下面,因为微信回调域名只能配置一个,我们通过路径前缀区分,nginx转发不同前缀的url到node服务 1. 下载代码 2. npm install(centos环境需要先安装gcc-c++) 3. npm run build (测试环境npm run build:dev) 4. npm run prod (测试环境 npm run dev) 5. nginx的配置(47.96.17.98 /etc/nginx/conf.d/h5.conf), 其中/test /h5等路径是跟server/config/中 server prefix保持一致 测试环境使用config.dev.js正式环境使用config.prod.js配置文件 ``` location ^~ /test/ { proxy_pass http://127.0.0.1:3333/test/; proxy_redirect http://127.0.0.1:3333/test/ /test/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } location ^~ /h5/ { proxy_pass http://127.0.0.1:3345/h5/; proxy_redirect http://127.0.0.1:3333/h5/ /h5/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } location ^~ /production/ { proxy_pass http://127.0.0.1:3344/production/; proxy_redirect http://127.0.0.1:3344/production/ /production/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } ```