vue-cli2.0脚手架
本文最后更新于:2 年前
Vue-cli 是 vue 官方出品的快速构建单页应用的脚手架,如果你是初次尝试 Vue,我不建议使用,推荐你老老实实用普通引入 javascript 文件的方式进行学习,这里牵扯的东西很多,有 webpack,npm,nodejs,babel 等等,很容易产生从入门就放弃的思想。
Vue-cli,开始吧骚年
一、安装 vue-cli
安装 vue-cli 的前提是你已经安装了 npm,安装 npm 你可以直接下载 node 的安装包进行安装。你可以在命令行工具里输入 npm -v 检测你是否安装了 npm 和版本情况。出现版本号说明你已经安装了 npm 和 node,我这里的 npm 版本为 3.10.10。如果该命令不可以使用,需要安装 node 软件包,根据你的系统版本选择下载安装就可以了。
下载地址:http://nodejs.cn/download/
npm 没有问题,接下来我们可以用 npm 命令安装 vue-cli 了,在命令行输入下面的命令:
1 |
|
- -g :代表全局安装。如果你安装时报错,一般是网络问题,你可以尝试用 cnpm 来进行安装。安装完成后,可以用 vue
- -V 来进行查看 vue-cli 的版本号。注意这里的 V 是大写的。我这里版本号是 2.8.1.
如果 vue -V 的命令管用了,说明已经顺利的把 vue-cli 安装到我们的计算机里了。
二、初始化项目
可以参考官方新版安装教程https://cli.vuejs.org/zh/guide/creating-a-project.html#vue-create
旧版本
以下是拉取 2.x 模板 (旧版本)
我们用 vue init 命令来初始化项目,具体看一下这条命令的使用方法。vue init <template-name> <project-name>
init:表示我要用 vue-cli 来初始化项目
- webpack-一个全面的 webpack+vue-loader 的模板,功能包括热加载,linting,检测和 CSS 扩展。
- webpack-simple-一个简单 webpack+vue-loader 的模板,不包含其他功能,让你快速的搭建 vue 的开发环境。
- browserify-一个全面的 Browserify+vueify 的模板,功能包括热加载,linting,单元检测。
- browserify-simple-一个简单 Browserify+vueify 的模板,不包含其他功能,让你快速的搭建 vue 的开发环境。
-simple-一个最简单的单页应用模板。
在实际开发中,一般我们都会使用 webpack 这个模板,那我们这里也安装这个模板,在命令行输入以下命令:
建议用新版本或者离线模式,直接使用vue init webpack
可能会报错
1 |
|
输入命令后,会询问我们几个简单的选项,我们根据自己的需要进行填写就可以了。
- Project name :项目名称 ,如果不需要更改直接回车就可以了。注意:这里不能使用大写,所以我把名称改成了 vueclitest
- Project description:项目描述,默认为 A Vue.js project,直接回车,不用编写。
- Author:作者,如果你有配置 git 的作者,他会读取。
- Install vue-router? 是否安装 vue 的路由插件,我们这里需要安装,所以选择 Y
- Use ESLint to lint your code? 是否用 ESLint 来限制你的代码错误和风格。我们这里不需要输入 n,如果你是大型团队开发,最好是进行配置。
- setup unit tests with Karma + Mocha? 是否需要安装单元测试工具 Karma+Mocha,我们这里不需要,所以输入 n。
- Setup e2e tests with Nightwatch?是否安装 e2e 来进行用户行为模拟测试,我们这里不需要,所以输入 n。
离线模式(解决 vue init webpack 报错)
解决 vue init webpack 报错,直接使用vue init webpack test
会报错,错误信息如下:
1 |
|
通过 vue-cli 工具命令 vue init webpack vuedemo 创建 vue 项目的时候报错,提示连接超时,应该是下载某个 package 的时候,需要翻墙,导致出现连接超时
[
](https://github.com/vuejs-templates/webpack)
解决办法是改为离线创建,我们需要下载 github 仓库中的 vue-templates/webpack,然后解压到本地。下载地址为:https://github.com/vuejs-templates/webpack,下载之后,解压到本地用户目录下创建.vue-templates 文件夹
下载之后的压缩包为 webpack-develop.zip,我们解压之后,需要更改目录名为 webpack。用户目录下的目录为.vue-templates,注意文件夹名称前面的点(.)。
以我的为例将 webpack 文件放到 C:\Users\jackhoo.vue-templates 下
这样,我们再进行 vue init webpack vuedemo 命令的时候,需要带上参数–offline 表示离线初始化。
1 |
|
输入命令后,会询问我们几个简单的选项,我们根据自己的需要进行填写就可以了。
- Project name :项目名称 ,如果不需要更改直接回车就可以了。注意:这里不能使用大写,所以我把名称改成了 vuedemo
- Project description:项目描述,默认为 A Vue.js project,直接回车,不用编写。
- Author:作者,如果你有配置 git 的作者,他会读取。
- Install vue-router? 是否安装 vue 的路由插件,我们这里需要安装,所以选择 Y
- Use ESLint to lint your code? 是否用 ESLint 来限制你的代码错误和风格。我们这里不需要输入 n,如果你是大型团队开发,最好是进行配置。
- setup unit tests with Karma + Mocha? 是否需要安装单元测试工具 Karma+Mocha,我们这里不需要,所以输入 n。
- Setup e2e tests with Nightwatch?是否安装 e2e 来进行用户行为模拟测试,我们这里不需要,所以输入 n。
- Should we run
npm install
for you after the project has been created? (recommended) npm
1 |
|
命令行出现上面的文字,说明我们已经初始化好了第一步。
- cd vuedemo 进入我们的 vue 项目目录。
- npm run dev 开发模式下运行我们的程序。给我们自动构建了开发用的服务器环境和在浏览器中打开,并实时监视我们的代码更改,即时呈现给我们。
最后运行就成功了。
Vue-cli 项目结构讲解
vue-cli 脚手架工具就是为我们搭建了开发所需要的环境,为我们省去了很多精力。有必要对这个环境进行熟悉,我们就从项目的结构讲起。
Ps:由于版本实时更新和你选择安装的不同(这里列出的是模板为 webpack 的目录结构),所以你看到的有可能和下边的有所差别。
1 |
|
重要文件讲解:
package.json package.json 文件是项目根目录下的一个文件,定义该项目开发所需要的各种模块以及一些项目配置信息(如项目名称、版本、描述、作者等)。
package.json 里的 scripts 字段,这个字段定义了你可以用 npm 运行的命令。在开发环境下,在命令行工具中运行 npm run dev 就相当于执行 node build/dev-server.js .也就是开启了一个 node 写的开发行建议服务器。由此可以看出 script 字段是用来指定 npm 相关命令的缩写。
1 |
|
dependencies 字段和 devDependencies 字段
- dependencies 字段指项目运行时所依赖的模块;
- devDependencies 字段指定了项目开发时所依赖的模块;
在命令行中运行 npm install 命令,会自动安装 dependencies 和 devDempendencies 字段中的模块。package.json 还有很多相关配置,如果你想全面了解,可以专门去百度学习一下。
webpack 配置相关
我们在上面说了运行 npm run dev 就相当于执行了 node build/dev-server.js,说明这个文件相当重要,先来熟悉一下它。 我贴出代码并给出重要的解释。dev-server.js
1 |
|
webpack.base.confg.js
webpack 的基础配置文件
1 |
|
.babelrc
Babel 解释器的配置文件,存放在根目录下。Babel 是一个转码器,项目里需要用它将 ES6 代码转为 ES5 代码。如果你想了解更多,可以查看 babel 的知识。
1 |
|
.editorconfig
该文件定义项目的编码规范,编译器的行为会与.editorconfig 文件中定义的一致,并且其优先级比编译器自身的设置要高,这在多人合作开发项目时十分有用而且必要。
1 |
|
解读 Vue-cli 的模板
我们主要了解一下 Vue-cli 的模板操作,包括增加模板,修改模板,以及一个常规模板的基本结构。
一、npm run build 命令
如何把写好的 Vue 网页放到服务器上,主要的命令就是要用到 npm run build 命令。我们在命令行中输入 npm run build 命令后,vue-cli 会自动进行项目发布打包。你在 package.json 文件的 scripts 字段中可以看出,你执行的 npm run build 命令就相对执行的 node build/build.js 。
package.json 的 scripts 字段:
1 |
|
在执行完 npm run build 命令后,在你的项目根目录生成了 dist 文件夹,这个文件夹里边就是我们要传到服务器上的文件。
dist 文件夹下目录包括:
- index.html 主页文件:因为我们开发的是单页 web 应用,所以说一般只有一个 html 文件。
- static 静态资源文件夹:里边 js、CSS 和一些图片。
二、main.js 文件解读
main.js 是整个项目的入口文件,在 src 文件夹下:
1 |
|
通过代码可以看出这里引进了 App 的组件和的模板,它是通过 import App from ‘./App’这句代码引入的。 我们找到 App.vue 文件,打开查看。
三、App.vue 文件:
1 |
|
app.vue 文件我们可以分成三部分解读,
标签包裹的内容:这是模板的 HTMLDom 结构,里边引入了一张图片和
标签, 标签说明使用了路由机制。我们会在以后专门拿出一篇文章讲 Vue-router。 - 标签包括的js内容:你可以在这里些一些页面的动态效果和Vue的逻辑代码。
- 标签包裹的css内容:这里就是你平时写的CSS样式,对页面样子进行装饰用的,需要特别说明的是你可以用来声明这些css样式只在本模板中起作用。
四、router/index.js 路由文件
引文在 app.vue 中我们看到了路由文件,虽然 router 的内容比较多,但是我们先简单的看一下
1 |
|
我们可以看到 import Hello from ‘@/components/Hello’这句话, 文件引入了/components/Hello.vue 文件。这个文件里就配置了一个路由,就是当我们访问网站时给我们显示 Hello.vue 的内容。
五、HelloWorld.vue 文件解读:
。也是分为