Vue 2 项目搭建
Vue 2 项目通常使用 Vue CLI 搭建,适合维护存量系统、后台管理平台或依赖旧生态的项目。新项目若没有历史包袱,建议优先使用 Vue 3。
环境要求
建议使用 Node.js 14 或 16 维护 Vue 2 项目。过新的 Node 版本可能会让旧版 Webpack、node-sass 等依赖出现兼容问题。
bash
node -v
npm -v如果本机需要同时维护多个项目,建议使用 nvm 管理 Node 版本。
安装 Vue CLI
bash
npm install -g @vue/clibash
pnpm add -g @vue/clibash
yarn global add @vue/cli安装后确认版本:
bash
vue --version创建项目
bash
vue create your-project如果需要手动选择 Babel、Router、Vuex、CSS 预处理器、ESLint 等配置,选择 Manually select features。
常见选择:
- Babel:兼容旧浏览器时启用。
- Router:多页面业务系统通常需要。
- Vuex:中大型 Vue 2 项目常用状态管理。
- CSS Pre-processors:可选择 Sass/Less。
- Linter:建议启用 ESLint,统一代码质量。
推荐目录结构
text
src/
api/ # 接口请求封装
assets/ # 静态资源
components/ # 通用组件
router/ # 路由配置
store/ # Vuex 模块
styles/ # 全局样式
utils/ # 工具函数
views/ # 页面组件
App.vue
main.js常用配置
在项目根目录创建或编辑 vue.config.js:
js
const { defineConfig } = require("@vue/cli-service");
module.exports = defineConfig({
publicPath: process.env.NODE_ENV === "production" ? "/" : "/",
productionSourceMap: false,
devServer: {
port: 8080,
proxy: {
"/api": {
target: "http://localhost:3000",
changeOrigin: true
}
}
}
});接口层封装
建议把请求实例和业务接口分开,避免在页面里直接拼接请求。
js
// src/api/request.js
import axios from "axios";
const request = axios.create({
baseURL: process.env.VUE_APP_API_BASE_URL,
timeout: 10000
});
request.interceptors.response.use(
response => response.data,
error => Promise.reject(error)
);
export default request;js
// src/api/user.js
import request from "./request";
export function getUserList(params) {
return request.get("/users", { params });
}后台模板
如果要快速搭建后台管理系统,可以参考 vue-admin-template:
bash
git clone https://github.com/PanJiaChen/vue-admin-template.git
cd vue-admin-template
npm install
npm run dev建议不要直接在模板上长期堆业务。落地项目时应尽快梳理权限、路由、接口、主题和构建配置。
维护建议
- 锁定 Node 和包管理器版本,减少环境漂移。
- 谨慎升级 Webpack、Babel、Sass 相关依赖。
- 新增页面时保持路由、菜单、权限和接口定义同步。
- 把公共逻辑抽到 mixins、utils 或业务组件中,但避免滥用全局 mixin。
- 对核心业务逐步补充单元测试或关键流程 E2E 测试。
迁移到 Vue 3 的准备
- 减少对旧插件和全局 API 的依赖。
- 梳理 Vuex 模块,为迁移到 Pinia 做准备。
- 逐步替换不维护的 UI 组件库。
- 提前处理过滤器、事件总线、
this上挂载过多工具等问题。
