-- vue-cil(旧)
Create by fall on — — 2021
Recently revised in 08 May 2023
vue/cli
vue/cli 可以快速生成一个 Vue 项目结构,简化一个项目的创建流程
注:vue/cli 当前处于维护模式,只进行补丁修复,建议使用 vite 代替
安装
推荐全局安装:npm install -g @vue/cli
简介
@vue/cli 有三个主要的组件
CLI
@vue/cli 全局安装的包,提供了终端里面的 vue 命令,可以通过 vue create 快速搭建一个新的项目,或者使用 vue ui 通过图形化界面管理你的所有项目。
CLI 服务
这是一个开发依赖的包,局部安装在每一个 @vue/cli 创建的项目中。构建在 webpack 和 webpack-dev-server 之上的,它包含了项目内部使用的 vue-cli-service 命令,提供了 serve 、build 等命令。
CLI 插件
向项目提供一些可选的功能的 npm 安装包,例如 Babel/TypeScript 、ESLint 集成,单元测试和 end-to-end 测试等,插件名称通常为 @vue/cli-plugin- (作为内建插件)@vue-cli-plugin-(社区插件)在项目中运行 vue-cli-service 会自动解析并加载所有列出的插件。
快速生成一个项目
命令行创建
vue create 通过命令行工具的方式进行创建一个 vue 项目
vue ui 使用图形化界面,可以创建一个 vue 项目
生成的文件分类
src 目录下创建不同名称的文件夹以区分模块
| 文件夹 | 内容 |
|---|---|
| main | 整个项目的入口js文件,构建打包生成js文件的起点就是它 |
| router | vue路由文件 |
api | ajax请求的 api 方法文件 |
| asset | css样式、iconfont、图片之类的文件 |
| components | 存放公用的组件 |
| store | 存放 vuex 仓库数据文件;数据多的时候一可以拆分多个模块 |
| utils | 存放小工具文件 |
| views | 页面组件,一个页面可以分成多个单文件组件 |
| App.vue | 主要是放置路由和一些路由跳转动画 |
| layout | 布局 |
| page | 按照页面进行划分, |
CLI 服务
@vue/cli-service 安装了一个名为 vue-cli-service 的命令,可以在 package.json 中的 script 以 vue-cli-service 进行调用和访问,或者是./node_module/.bin/vue-cli-service 访问这个命令。
当然,这个命令也可以通过 npx 工具进行调用:npx vue-cli-service serve。
npx vue-cli-service serve 这个命令会启动一个基于 webpack-dev-server 的服务器,这个服务器自带热模块重载 Hot-module-Replacement 除了命令行,也可以通过 vue.config.js 进行配置。
vue-cli-service serve [options] [entry]
# 将命令放置在 package.json 中的 script 中。
# [entry] 作为程序的入口
# 选项:
# --open 在服务器启动时打开浏览器
# --copy 在服务器启动时将 URL 复制到剪切版
# --mode 指定环境模式 (默认值:development)
# --host 指定 host (默认值:0.0.0.0)
# --port 指定 port (默认值:8080)
# --https 使用 https (默认值:false)
npx vue-cli-service build
用法:vue-cli-service build [options] [entry|pattern]
# 选项:
# --mode 指定环境模式 (默认值:production)
# --dest 指定输出目录 (默认值:dist)
# --modern 面向现代浏览器带自动回退地构建应用
# --target app | lib | wc | wc-async (默认值:app)
# --name 库或 Web Components 模式下的名字 (默认值:package.json 中的 "name" 字段或入口文件名)
# --no-clean 在构建项目之前不清除目标目录
# --report 生成 report.html 以帮助分析包内容
# --report-json 生成 report.json 以帮助分析包内容
# --watch 监听文件变化
配置
如果想要让 vue 项目跑起来后自动打开,可以在 package.json 文件里面添加该配置
{
"vue":{
"devServer":{
"port":8888,// 端口号更改为 8888
"open":true // 编译完成后,自动打开浏览器
}
}
}
当然,也可以通过单独的文件 vue.config.js 进行单独配置(推荐)。
devServer
// vue.config.js
module.exports ={
devServer: {
open: true, // 项目启动后直接打开
host: "127.0.0.1", // 启动的主机名称
port: 5714,
proxy: { // 代理,将所有 /api 开头的内容进行代理
"/api": {
target: '192.168.100.16', // 代理的目标地址
changeOrigin: true,
pathRewrite: {
"^/api": "/" // 请求时,将所有 /api 替换为 /
}
}
}
}
}
完整配置
const { resolve } = require("path")
const proxyURL = "http://localhost:3306/"
module.exports = {
lintOnSave: false, // 保存时自动检查代码规范
productionSourceMap: true, // 生产环境产出 .map.js 文件,用于 dist 文件的 debug
configureWebpack: {
name: "fall",
devtool: "source-map",
resolve: {
// 目录别名,
alias: {
"@": resolve("src"),
"@C": resolve("src/components"),
}
}
},
chainWebpack: config => {
config
.plugin("html")
.tap(args => {
args[0].title = "编辑器"
return args
})
},
devServer: {
open: true, // 项目启动后直接打开
host: "127.0.0.1",
port: 5714,
proxy: { // 代理,将所有
"/api": {
target: proxyURL,
changeOrigin: true,
pathRewrite: {
"^/api": "/"
}
}
}
}
}