一. 什么是Vue-Cli?
Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统,也就是我们通常说的Vue框架。
二. 安装与卸载Vue-Cli
- Vue CLI 需要 Node.js 8.9 或更高版本 (推荐 8.11.0+)。 
 所以请各位查看下自己的node版本是否满足
 打开命令行输入- 1 - node -v 
- 查看自己是否安装了Vue-Cli脚手架 
 打开命令行输入(注意是大写V)- 1 - vue -V - 如果你的版本不是3.0+ 请卸载当前系统的Vue-Cli 
 在命令行输入- 1 
 2
 3
 4
 5- npm uninstall vue-cli -g 
 # OR
 yarn global remove @vue/cli 
- 全局安装Vue-Cli3.0
 在命令行输入1 
 2
 3
 4
 5npm install -g @vue/cli 
 # OR
 yarn global add @vue/cli
三. 创建项目
- 自定义文件夹,在当前文件目录下打开命令行(按住Shift + 右键 选择)输入 - 1 - vue create you-project  
- 这时候我们面临选择  
 第一个选项是博主上次创建保存下来的配置
 第二个选项是Vue-Cli提供的默认配置,只包含一些基本的东西
 第三个是自定义配置
 所以我们选第三个
- 选择Vue-Cli为开发者提供的8个功能特性 使用键盘上下键在特性选项之间切换 空格选中 
 按下回车
- 预处理语言与ESLint的选择 
 按下回车
- 询问:Save this as a preset for future projects?是否保存本次创建项目的配置===》看个人喜好
- 看到这个界面基本上你就成功了  
 根据提示 在当前的命令行输入- 1 
 2
 3- cd vue-three 
 npm run serve- 打开浏览器在地址栏输入 http://localhost:8080/ 
 看到这个界面你已经完成了Vue框架的搭建了

四. vue.config.js
Vue-Cli3.0 搭建的框架相比Vue-Cli2.0搭建的框架减少了二个文件目录
分别是 build目录 和 config目录
也就没有了 webpack.base.config.js、webpack.dev.config.js 、webpack.prod.config.js 等配置文件。
因为3.0的Cli将大多的配置已经配置好了,它们秉承的是“约定大于配置”思想,简单说就是”能不配置的就不配置,你就按照我的方式来,也不要去争论这个好不好,快速进行业务开发才是正经事”. 它们不建议你去配置,但也不会拦着你去配置
- 如何修改webpack配置
 在项目的根目录下(与src同级)创建 vue.config.js,这里附上一个配置说明根据需要自行修改1 
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66// vue.config.js 
 module.exports = {
 // 项目部署的基本路径
 // 默认假设你的应用将会部署在域名的根部
 // 比如,https://www.vue-cli.com/
 // 如果你的应用是部署在一个子路径下,那么你需要在这里指定子路径,比如,如果你部署在 https://www.my-vue.com/my-app/; 那么将这个值改为 “/my-app/”
 // 默认静态文件引用目录 为/
 publicPath: './',
 // 将构建好的文件输出到哪里 当运行 vue-cli-service build 时生成的生产环境构建文件的目录。注意目标目录在构建之前会被清除 (构建时传入 --no-clean 可关闭该行为)。
 outputDir: 'dist',
 // 放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录。
 assetsDir: './',
 // 是否在开发环境下通过 eslint-loader 在每次保存时 lint 代码。这个值会在 @vue/cli-plugin-eslint 被安装之后生效。
 // 设置为 true 时,eslint-loader 会将 lint 错误输出为编译警告。默认情况下,警告仅仅会被输出到命令行,且不会使得编译失败。
 // 如果你希望让 lint 错误在开发时直接显示在浏览器中,你可以使用 lintOnSave: 'error'。这会强制 eslint-loader 将 lint 错误输出为编译错误,同时也意味着 lint 错误将会导致编译失败。
 lintOnSave: true,
 // 是否使用包含运行时编译器的 Vue 构建版本。设置为 true 后你就可以在 Vue 组件中使用 template 选项了,但是这会让你的应用额外增加 10kb 左右。
 runtimeCompiler: false,
 // 默认情况下 babel-loader 会忽略所有 node_modules 中的文件。如果你想要通过 Babel 显式转译一个依赖,可以在这个选项中列出来。
 transpileDependencies: [],
 // 如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建。
 productionSourceMap: false,
 // 是一个函数,会接收一个基于 webpack-chain 的 ChainableConfig 实例。允许对内部的 webpack 配置进行更细粒度的修改。
 chainWebpack: () => {},
 // 是否为 Babel 或 TypeScript 使用 thread-loader。该选项在系统的 CPU 有多于一个内核时自动启用,仅作用于生产构建。
 parallel: require('os').cpus().length > 1,
 // 向 PWA 插件传递选项。
 // https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-pwa
 pwa: {},
 // 所有 webpack-dev-server 的选项都支持。注意:有些值像 host、port 和 https 可能会被命令行参数覆写。
 // 有些值像 publicPath 和 historyApiFallback 不应该被修改,因为它们需要和开发服务器的 publicPath 同步以保障正常的工作。
 // 代理配置
 devServer: {
 host: '0.0.0.0',
 port: 8080, // 端口号
 https: false, // https:{type:Boolean}
 open: true // 配置自动启动浏览器 open: 'Google Chrome'-默认启动谷歌
 // proxy: 'http://localhost:9000' // 配置跨域处理,只有一个代理
 // 配置多个代理
 // proxy: {
 // '/api': {
 // target: 'https://way.jd.com', // 目标主机
 // ws: true, // 代理的WebSockets
 // changeOrigin: true, // 需要虚拟主机站点
 // pathRewrite: {
 // '^/api': ''
 // }
 // }
 // }
 },
 // 第三方插件选项
 // 这是一个不进行任何 schema 验证的对象,因此它可以用来传递任何第三方插件选项。
 pluginOptions: {}
 };