46

为了便于 Vue 项目的管理, Vue 团队官方开发了 vue-cli 工具。

本文将带您使用 vue-cli 快速创建一个 Vue 项目。

本地安装 vue-cli

使用 npm 全局安装 vue-cli :

npm i -g @vue/cli@3.0.0-beta.6

创建项目

执行:

vue create my-project

会弹出如下界面:

选择套餐

此处有两个选择:

  • default (babel, eslint) 默认套餐,提供 babeleslint 支持。
  • Manually select features 自己去选择需要的功能,提供更多的特性选择。比如如果想要支持 TypeScript ,就应该选择这一项。

可以使用上下方向键来切换选项。如果只需要 babel 和 eslint 支持,那么选择第一项,就完事了,静静等待 vue 初始化项目。

如果想要更多的支持,就选择第二项:切换到第二项,按下 enter 键选中,弹出如下界面:

选择特性支持

vue-cli 内置支持了8个功能特性,可以多选:使用方向键在特性选项之间切换,使用空格键选中当前特性,使用 a 键切换选择所有,使用 i 键翻转选项。

对于每一项的功能,此处做个简单描述:

  • TypeScript 支持使用 TypeScript 书写源码。
  • Progressive Web App (PWA) Support PWA 支持。
  • Router 支持 vue-router
  • Vuex 支持 vuex
  • CSS Pre-processors 支持 CSS 预处理器。
  • Linter / Formatter 支持代码风格检查和格式化。
  • Unit Testing 支持单元测试。
  • E2E Testing 支持 E2E 测试。

那么基于开发常见的项目,同时兼顾项目健壮性的原则,本次选择如下特性支持:

特性选项

按下 enter 键确认选择,进入下一步:

image.png

这里是让选择在开发 Vue 组件时,要不要使用 class 风格的写法。为了更方便地使用 TypeScript ,此处选择 Y :

使用 class 风格的 Vue 组件开发方式

按 enter 键,进入下一步:

image.png

这个选项的意思是要不要使用 babel 工具自动为转换后的 TypeScript 代码注入 polyfiills 。如果实在搞不清楚具体是什么意思,可以先不用管,直接选择 Y ,进入下一步:

选择 CSS 预处理器

这里就是说我们在项目里面需要支持何种动态样式语言,此处提供了三个选项:

此处选择 LESS ,进入下一步:

单测工具

选择单元测试工具,直接选择现在比较火的 Jest ,进入下一步:

配置文件位置

这一步就是要选择配置文件的位置了。对于 Babel 、 PostCSS 等,都可以有自己的配置文件: .babelrc 、 .postcssrc 等等,同时也可以把配置信息放在 package.json 里面。此处出于对编辑器( Visual Studio Code )的友好支持(编辑器一般默认会在项目根目录下寻找配置文件),选择把配置文件放在外面,选择 In dedicated config files ,进入下一步:

presets

这个就是问要不要把当前的这一系列选项配置保存起来,方便下一次创建项目时复用。对于 MAC ,保存的配置信息会放在 ~/.vuerc 里面。

我这里就选择 n 了,然后进入下一步:

registry

这里是选择 npm registry ,在中国的话,就直接使用默认的淘宝镜像就行了。

选完之后, vue-cli 就根据前面选择的内容,开始初始化项目了。

启动项目

初始完之后,进入到项目根目录:

cd my-project

启动项目:

npm run serve

稍等一会儿,可以看到自动在浏览器中打开了如下界面:

界面

打包上线

在开发完项目之后,就应该打包上线了。 vue-cli 也提供了打包的命令,在项目根目录下执行:

npm run build

执行完之后,可以看到在项目根目录下多出了一个 dist 目录,该目录下就是打包好的所有静态资源,直接部署到静态资源服务器就好了。

实际上,在部署的时候要注意,假设静态服务器的域名是 http://static.baidu.com ,那么对应到访问 <项目根目录>/dist/index.html 的 URL 一定要是 http://static.baidu.com/index.html ,其他的静态资源以此类推。

单元测试

执行:

npm run test

yibuyisheng
480 声望3 粉丝

前端工程师