• 第一个 vue-cli 项目


    一、什么是 vue-cli

            vue-cli 官方提供的一个脚手架,用于快速生成一个 vue 的项目模板;预先定义好的目录结构及基础代码,就好比咱们在创建 Maven 项目时可以选择创建一个骨架项目,这个骨架项目就是脚手架,我们的开发更加的快速;

    1.1 主要的功能

            a、统一的目录结构

            b、本地调试

            c、热部署

            d、单元测试

            e、集成打包上线

    1.2 需要安装的环境

    1.2.1 安装 node.js

            官网地址在这,不要下载最新版的,下载这个版本,要不后面有坑

            安装结束后,在 cmd 下输入 node -v,查看是否可以正确打印出版本号即可,

            在 cmd 下输入 npm -v,查看是否可以正确打印出版本号即可,这个 npm 就是一个软件包管理管理工具,就和 linux 下的 apt 软件安装差不多。

     1.2.2 安装镜像加速器

            需要安装 node.js 的淘宝镜像加速器 cnpm,这样子的话,下载会快很多,需要使用管理员权限启动 cmd 的命令窗口,否则有时会下载不成功。

    1. # -g 就是全局安装
    2. npm install -g cnpm@6.0.0 --registry=https://registry.npm.taobao.org

            由于刚才是全局安装的,安装完成之后可以在下面的目录下看到安装的东西,有些文如下所示:

     1.2.3 安装 vue-cli
    1. cnpm install vue-cli -g
    2. # 测试是否安装成功
    3. # 查看可以基于哪些模板创建 vue 应用程序,通常我们选择 webpack
    4. vue list

    二、第一个 vue-cli 应用程序

    2.1 创建 myvue 项目

            1、我们新创建一个文件夹 vue

            2、创建一个基于 webpack 模板的 vue 应用程序

    1. # 1、切换到刚才创建的 vue 目录下
    2. # 2、执行下面的命令这里的 myvue 是项目名称,可以根据自己的需求起名
    3. vue init webpack myvue
    4. # 3、一路都选择no即可;
    1. Project name:项目名称,默认 回车 即可
    2. Project description:项目描述,默认 回车 即可
    3. Author:项目作者,默认 回车 即可
    4. Install vue-router:是否安装 vue-router,选择 n 不安装(后期需要再手动添加)
    5. Use ESLint to lint your code:是否使用 ESLint 做代码检查,选择 n 不安装(后期需要再手动添加)
    6. Set up unit tests:单元测试相关,选择 n 不安装(后期需要再手动添加)
    7. Setup e2e tests with Nightwatch:单元测试相关,选择 n 不安装(后期需要再手动添加)
    8. Should we run npm install for you after the project has been created:创建完成后直接初始化,选择 n,我们手动执行;运行结果!

            3、切换到我们刚才创建的 myvue 的目录下,执行以下的命令

    1. cd myvue
    2. # 安装这个项目的所有依赖环境
    3. npm install
    4. # 启动项目
    5. npm run dev

            执行结束后,多了很多的依赖

            安装并运行成功后在浏览器输入 http://localhost:8080

            效果如下:

    2.2 vue-cli 的目录结构

    2.2.1 项目整体目录

            使用 idea 打开我们刚才创建的 myvue 项目,项目所展示的目录结构如下:

            1、build 和 config:WebPack 配置文件

            2、node_modules:用于存放 npm install 安装的依赖文件

            3、src: 项目源码目录

            4、static:静态资源文件

            5、.babelrc:Babel 配置文件,主要作用是将 ES6 转换为 ES5

            6、.editorconfig:编辑器配置

            7、eslintignore:需要忽略的语法检查配置文件

            8、.gitignore:git 忽略的配置文件

            9、.postcssrc.js:css 相关配置文件,其中内部的 module.exports 是 NodeJS 模块化语法

            10、index.html:首页,仅作为模板页,实际开发时不使用

            11、package.json:项目的配置文件

                    11-1、name:项目名称

                    11-2、version:项目版本

                    11-3、description:项目描述

                    11-4、author:项目作者

                    11-5、scripts:封装常用命令

                    11-6、dependencies:生产环境依赖

                    11-7、devDependencies:开发环境依赖 

    2.2.2 src 目录

            src 目录是项目的源码目录,所有代码都会写在这里。

    2.2.3 main.js

            项目的入口文件,我们知道所有的程序都会有一个入口,类似于 java 的 main。

    1. // The Vue build version to load with the `import` command
    2. // (runtime-only or standalone) has been set in webpack.base.conf with an alias.
    3. import Vue from 'vue'
    4. import App from './App'
    5. Vue.config.productionTip = false
    6. /* eslint-disable no-new */
    7. new Vue({
    8. el: '#app',
    9. components: { App },
    10. template: ''
    11. })

            import Vue from 'vue' :ES6 写法,会被转换成 require("vue");(require 是 NodeJS 提供的模块加载器)

            import App from './App' :意思同上,但是指定了查找路径 ./ 为当前目录

            Vue.config.productionTip = false :关闭浏览器控制台关于环境的相关提示

            new Vue({...}) :实例化 Vue

                    el: '#app' :查找 index.html 中 id 为 app 的元素

                    components: { App } :引入上面定义的 App 组件组件

                    template: '' :引入 App 组件的