almost最好的Vue + Typescript系列01 环境搭建篇

前言

hello~ 你们好。 初来乍到,请多多关照 ?(๑•̀ㅂ•́)و✧
也许这是第一套基于 vue-cli 3.x 搭建基于 typescript 的vue项目教程。
2018年3月初,vue-cli 升级到了新的版本3.x版,跟vue-cli 2.x版本项目结构发生了很大的改变,目录结构更简洁更科学。
而且能够选配 TypeScript,在此以前配置 TypeScript 略麻烦,typescript 是 JavaScript的超级,静态类型,便捷的注解,使前端代码优雅。前端

前期准备

不用怕,下面开始一步步教你构建一个vue项目:vue

我大概总结了构建项目的几个步骤:webpack

  1. vue-cli 脚手架生成项目结构 (此篇文章主要介绍第一步)
  2. 封装网络请求接口,还能够再根据业务进行一些封装
  3. 网络请求异常处理的封装
  4. 根据我的喜爱配置一些插件,如tslint

环境依赖: Node.js ; (最新的脚手架须要Node >=8.9)
vue官方脚手架: vue-cligit

开始动手

利用最新版的脚手架vue-cli构建初始项目
参考github: vue-cli

1.安装最新的脚手架包

npm install -g @vue/cli

检测是否安装成功: 
vue -V 或 vue --version

2.初始化项目(注意不是init,并且create)

vue create vue-project(取你要的项目名字,不支持驼峰)

3.自定义项目需求:

默认设置(直接enter)会快速建立一个新项目的原型,没有带任何辅助功能的npm包
图片描述github

手动配置(按方向键 ↓)是咱们所须要的面向生产的项目,提供可选功能的npm包
clipboard.pngweb

这时候出现了一些配置项,选择适合本次项目的配置: (按空格确认选择,down往下移动,不要按错啦)
clipboard.pngvue-cli

按下回车键,进入下一个配置:
clipboard.png
clipboard.pngtypescript

sass or less,我的偏向于sass,因此这里选择了sass:
图片描述npm

语法检查:
clipboard.pngjson

什么时候进行语法检查:
clipboard.png
lint on save:保存检查
lint and fix on commit: fix和commit检查

下一步出现了In dedicated config files or In package.json

clipboard.png

建议选择分In dedicated config files(专门的配置文件),会自动生成一个vue.config.js的文件,由于新的脚手架没有特殊的webpack.config.json,为了使结构更清晰,咱们单独将配置放在一个文件夹下面,不跟package.json揉在一块儿

继续向下选择
是否保存本次配置,能够方便以后直接使用,此次就不保存了哦~

clipboard.png

保存成功后,开始安装啦~~ 过程有点慢
安装成功后,提示:
clipboard.png


此时项目大概结构已经有了,选择咱们熟悉的编辑器打开(这里推荐使用vscode,对ts语法支持很好哦)

大体目录结构:
clipboard.png

咱们如今运行起来试试:

cd vue-project
cnpm i
npm run serve
注意启动命令: npm run serve, 在package.json可查看相应的启动命令 图片描述

启动成功:
图片描述

好啦~ 脚手架运行起来之后,下面咱们该根据本身须要的须要配置本身的项目了

安装 tslint

npm install --save-dev tslint-eslint-rules

新建文件 tslint.json , 根据本身的喜爱配置啦,附上个人tslint.json文件

{
  "defaultSeverity": "warning",
  "extends": [
    "tslint:recommended"
  ],
  "rules": {
    "quotemark": [true, "single"],
    "indent": [true, "spaces", 2],
    "interface-name": false,
    "ordered-imports": false,
    "object-literal-sort-keys": false,
    "no-trailing-whitespace": false,
    "no-consecutive-blank-lines": false,
    "semicolon": [true, "never"],
    "trailing-comma": [true, {"multiline": "never", "singleline": "never"}]
  }
}

题外话

第一篇主要介绍了下基于vue-cli 3.x + typescript环境搭建篇,下一篇简单介绍一下 vue项目结构详解
相关文章
相关标签/搜索