这篇文章主要介绍下vue-cli3.0项目搭建,项目结构和配置等整理一下,分享给大家。
一、介绍
Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统。
- 通过
@vue/cli
实现的交互式的项目脚手架。 - 通过
@vue/cli
+@vue/cli-service-global
实现的零配置原型开发。 - 一个运行时依赖 (
@vue/cli-service
),该依赖:- 可升级;
- 基于 webpack 构建,并带有合理的默认配置;
- 可以通过项目内的配置文件进行配置;
- 可以通过插件进行扩展。
- 一个丰富的官方插件集合,集成了前端生态中最好的工具。
- 一套完全图形化的创建和管理 Vue.js 项目的用户界面。
Vue CLI 致力于将 Vue 生态中的工具基础标准化。它确保了各种构建工具能够基于智能的默认配置即可平稳衔接,这样你可以专注在撰写应用上,而不必花好几天去纠结配置的问题。与此同时,它也为每个工具提供了调整配置的灵活性,无需 eject。
Vue CLI 有三个独立的部分
CLI (@vue/cli
) 是一个全局安装的 npm 包,提供了终端里的 vue
命令。它可以通过 vue create
快速搭建一个新项目,或者直接通过 vue serve
构建新想法的原型。你也可以通过 vue ui
通过一套图形化界面管理你的所有项目。
CLI 服务: (@vue/cli-service
) 是一个开发环境依赖。它是一个 npm 包,局部安装在每个 @vue/cli
创建的项目中。
CLI 服务是构建于 webpack 和 webpack-dev-server 之上的。它包含了:
- 加载其它 CLI 插件的核心服务;
- 一个针对绝大部分应用优化过的内部的 webpack 配置;
- 项目内部的
vue-cli-service
命令,提供serve
、build
和inspect
命令。
如果你熟悉 create-react-app 的话,@vue/cli-service
实际上大致等价于 react-scripts
,尽管功能集合不一样。
CLI 插件:是向你的 Vue 项目提供可选功能的 npm 包,例如 Babel/TypeScript 转译、ESLint 集成、单元测试和 end-to-end 测试等。Vue CLI 插件的名字以 @vue/cli-plugin-
(内建插件) 或 vue-cli-plugin-
(社区插件) 开头,非常容易使用。
当你在项目内部运行 vue-cli-service
命令时,它会自动解析并加载 package.json
中列出的所有 CLI 插件。
插件可以作为项目创建过程的一部分,或在后期加入到项目中。它们也可以被归成一组可复用的 preset。
二、安装
1、如果你已经全局安装了旧版本的 vue-cli
(1.x 或 2.x),你需要先卸载它,否则跳过此步:
npm uninstall vue-cli -g //或者 yarn global remove vue-cli
2、Vue CLI 3需要 Node.js ≥ 8.9 (官方推荐 8.11.0+;Vue CLI 4.x 则需要 Node.js v8.9 或更高版本 (推荐 v10 以上),你可以使用 nvm 或 nvm-windows在同一台电脑中管理多个 Node 版本)。
3、安装@vue/cli(Vue CLI 3的包名称由 vue-cli
改成了 @vue/cli
)
npm install -g @vue/cli //yarn global add @vue/cli
4、可以用这个命令来检查其版本是否正确
vue --version//vue -V
三、使用
1、vue create 搭建新项目
*官方提示:如果你在 Windows 上通过 minTTY 使用 Git Bash,交互提示符并不工作。你必须通过 winpty vue.cmd create hello-world
启动这个命令。
vue create <Project Name> //文件名 不支持驼峰(含大写字母)
具体操作如下:
首先,会提示你选择一个preset(预设),如果没有配置保存过,则只有以下选项
Default(babel,eslint):默认设置(直接enter)非常适合快速创建一个新项目的原型,没有带任何辅助功能的 npm包
Manually select features:自定义配置(按方向键 ↓)是我们所需要的面向生产的项目,提供可选功能的 npm 包
手动选择需要添加的配置项:
? Please pick a preset: Manually select features
? Check the features needed for your project: (Press <space> to select, <a> to toggle all, <i> to invert selection)
>(*) Choose Vue version
(*) Babel//转码器,可以将ES6代码转为ES5代码,从而在现有环境执行。
( ) TypeScript// TypeScript是一个JavaScript(后缀.js)的超集(后缀.ts)包含并扩展了 JavaScript 的语法,需要被编译输出为 JavaScript在浏览器运行,目前较少人再用
( ) Progressive Web App (PWA) Support// 渐进式Web应用程序
( ) Router// vue-router(vue路由)
( ) Vuex// vuex(vue的状态管理模式)
( ) CSS Pre-processors// CSS 预处理器(如:less、sass)
(*) Linter / Formatter// 代码风格检查和格式化(如:ESlint)
( ) Unit Testing// 单元测试(unit tests)
( ) E2E Testing // e2e(end to end) 测试
手动选择完配置enter,然后会提示你选择对应功能的具体工具包,选择自己擅长或者使用广泛的,简介如下:
①选择您想要开始项目的Vue.js版本====>2.x
②是否使用history router:Vue-Router 利用了浏览器自身的hash 模式和 history 模式的特性来实现前端路由
③css预处理器:主要为css解决浏览器兼容、简化CSS代码 等问题
④ ESLint:提供一个插件化的javascript代码检测工具,ESLint + Prettier //使用较多
⑤ 何时检测:
⑥单元测试 :
Mocha + Chai //mocha灵活,只提供简单的测试结构,如果需要其他功能需要添加其他库/插件完成。必须在全局环境中安装
Jest //安装配置简单,容易上手。内置Istanbul,可以查看到测试覆盖率,相较于Mocha:配置简洁、测试代码简洁、易于和babel集成、内置丰富的expect
⑦ 如何存放配置 :
⑧ 是否保存本次配置(y:记录本次配置,然后需要你起个名; n:不记录本次配置):
搭建完成:
2、项目结构