关于vue-cli项目npm run build:prod打包使用nginx代理本地运行记录

本文介绍了一个Vue项目的打包部署流程,包括环境变量配置、路由模式设置、构建参数调整等步骤,并详细说明了如何通过Nginx服务器发布项目。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 打包前准备

打开.env.development 如下对接口地址进行修改
.env.local文件和.env.production文件同上

ENV = 'development'

# 接口地址
VUE_APP_BASE_API = 'http://192.168.5.103:8091/'
...

打开router目录下的index.js,更改路由模式为hash(原本就是hash的可以省略)

export default new Router({
  mode: 'hash', 
  scrollBehavior: () => ({ y: 0 }),
  routes: constantRoutes
})

打开vue.config.js文件,对publicPath、assetsDir进行修改

module.exports = {
  // 部署生产环境和开发环境下的URL。
  publicPath: process.env.NODE_ENV === "production" ? "./" : "/",
  // 在npm run build 或 yarn build 时 ,生成文件的目录名称(要和baseUrl的生产环境路径一致)(默认dist)
  outputDir: 'dist',
  // 用于放置生成的静态资源 (js、css、img、fonts) 的;(项目打包之后,静态资源会放在这个文件夹下)
  assetsDir: './static',
  // 是否开启eslint保存检测,有效值:ture | false | 'error'
  lintOnSave: process.env.NODE_ENV === 'development',
....

2.运行npm run build:prod命令生成dist目录

在这里插入图片描述

3.下载nginx并修改配置项

下载地址

解压完之后对nginx.conf文件中的http 根据自己需要进行修改
在这里插入图片描述
将dist下的文件拷贝到nginx的html目录进行替换
最后双击nginx.exe运行或者在目录输入cmd在命令行使用start nginx运行nginx

打开http://localhost:9526结果正确

在这里插入图片描述

<think>嗯,用户之前问过如何用Docker部署Vue项目,现在又接着问“使用vue-cli呢”。我需要先理解他们的意图。可能他们在使用vue-cli创建项目时遇到了问题,或者想了解如何将vue-cli生成的项目与Docker结合? 首先,vue-cliVue的官方脚手架工具,用于快速生成项目结构。用户可能已经熟悉Docker部署,但不确定如何与vue-cli创建的项目配合。我需要回顾之前的回答,看看是否有需要补充的地方。 之前的回答中,Docker部署步骤包括了构建Vue项目,但可能没有详细说明vue-cli的具体使用。用户现在可能想知道在使用vue-cli初始化项目后,如何调整配置以适应Docker部署。比如,是否需要修改vue.config.js,或者如何处理环境变量? 另外,用户可能对vue-cli的基本用法不熟悉,需要从安装到创建项目的步骤。他们可能还关心如何优化构建过程,比如设置环境变量、配置Webpack,或者处理静态资源路径。 考虑到用户已经接触过Docker,可能希望了解如何将vue-cli生成的项目直接容器化。需要检查之前的Dockerfile是否适用于vue-cli项目,是否需要调整npm安装或构建命令。 可能还需要提到常见的vue-cli配置问题,比如代理设置、跨域处理,或者如何通过环境变量区分开发和生产环境。这些配置在Docker化时可能会有不同的处理方式,比如通过Docker构建参数传递变量。 此外,用户可能对vue-cli和Vite的区别感兴趣,是否需要迁移到Vite?但根据问题,用户明确询问vue-cli,所以应专注于vue-cli相关内容,不过可以简要提到Vite作为替代方案。 最后,需要确保回答结构清晰,分步骤说明vue-cli使用,并衔接之前的Docker部署指南,帮助用户全面理解从项目创建到部署的流程。同时注意检查是否有遗漏的常见问题,比如publicPath设置、路由模式导致的部署问题等。</think>以下是关于使用Vue CLI的详细介绍及与Docker部署的整合指南: --- ### 一、Vue CLI核心功能 Vue CLIVue官方提供的标准化脚手架工具,主要功能包括: 1. 快速初始化项目结构(含Webpack配置) 2. 集成`babel`、`eslint`、`router`、`vuex`等核心生态 3. 提供`vue-cli-service`命令(开发服务器/构建/测试) 4. 支持插件扩展(TypeScript、PWA等) --- ### 二、基础使用流程 #### 1. 安装与验证 ```bash npm install -g @vue/cli # 全局安装 vue --version # 验证版本(推荐 >= 4.x) ``` #### 2. 创建项目 ```bash vue create my-project # 交互式配置 ``` - 选择预设:默认配置 / 手动选择特性 - 常用勾选项:`Babel`, `Router`, `Vuex`, `CSS Pre-processors` #### 3. 项目结构解析 ```text ├── public/ # 静态资源(直接复制) ├── src/ # 核心代码 │ ├── assets/ # 编译处理的静态资源 │ ├── router/ # 路由配置 │ └── main.js # 入口文件 ├── vue.config.js # 自定义Webpack配置 └── package.json # 项目元数据 ``` --- ### 三、与Docker的整合要点 #### 1. 关键配置调整 在`vue.config.js`中添加生产环境配置: ```javascript module.exports = { productionSourceMap: false, // 关闭sourcemap减小体积 publicPath: process.env.NODE_ENV === 'production' ? '/static/' // 匹配Nginx配置 : '/' } ``` #### 2. 环境变量处理 创建`.env.production`文件: ```text NODE_ENV=production VUE_APP_API_BASE_URL=/api ``` 在Dockerfile中注入变量: ```dockerfile ARG VUE_APP_API_URL ENV VUE_APP_API_URL=$VUE_APP_API_URL ``` --- ### 四、增强型Dockerfile(适配Vue CLI) ```dockerfile # 构建阶段 FROM node:16-alpine as builder WORKDIR /app COPY package*.json ./ RUN npm install --registry=https://registry.npm.taobao.org COPY . . RUN npm run build # 生产阶段 FROM nginx:1.21-alpine COPY --from=builder /app/dist /usr/share/nginx/html COPY nginx.conf /etc/nginx/conf.d/default.conf EXPOSE 80 CMD ["nginx", "-g", "daemon off;"] ``` --- ### 五、常见问题解决方案 #### 1. 路由404问题 在Nginx配置中添加: ```nginx location / { try_files $uri $uri/ /index.html; } ``` #### 2. 跨域处理 通过`vue.config.js`配置代理: ```javascript devServer: { proxy: { '/api': { target: 'http://backend:8000', changeOrigin: true } } } ``` --- ### 六、Vue CLI vs Vite | 特性 | Vue CLI | Vite | |---------------------|-------------------------|-----------------------| | 构建工具 | Webpack | Rollup | | 冷启动速度 | 较慢 | 极快 | | 热更新 | 全量重载 | 按需HMR | | 配置复杂度 | 较高 | 较低 | | 生态系统 | 成熟 | 快速发展中 | --- ### 七、最佳实践建议 1. **镜像优化**: - 使用`.dockerignore`排除无用文件 ```text node_modules .git .DS_Store ``` 2. **多环境部署**: 通过不同Docker标签区分环境: ```bash docker build -t myapp:prod --build-arg ENV=production . ``` 3. **CI/CD集成**: ```yaml # GitLab CI示例 build_image: stage: build script: - docker build -t registry.example.com/myapp:$CI_COMMIT_SHA . - docker push registry.example.com/myapp:$CI_COMMIT_SHA ``` --- 通过Vue CLI创建的项目可以直接适配Docker部署方案。对于新项目,建议评估Vite方案(通过`create-vue`),但对需要Webpack高级配置或企业级稳定性的场景,Vue CLI仍是可靠选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值