使用 vue-cli 快速搭建 vue 项目

本贴最后更新于 2059 天前,其中的信息可能已经水流花落

Vue 是一套构建用户界面的渐进式框架(官网解释),什么叫渐进式框架呢,简单回答就是主张最少,这些概念只能自己去看,自己去理解,一千个读者一千个哈姆雷特,不过多的解释。Vue 官方文档很全面的。

Vue 两大核心思想,组件化和数据驱动,组件化就是将一个整体合理拆分为一个一个小块(组件),组件可重复使用,数据驱动是前端的未来发展方向,释放了对 DOM 的操作,让 DOM 随着数据的变化自然而然的变化(尤神原话),不必过多的关注 DOM,只需要将数据组织好即可。

Vue-cli 是快速构建这个单页应用的脚手架,这个可是官方的。官方给的建议,如果你是初次尝试 Vue,哪就老老实实用普通的书写引入 js 文件,这里牵扯太多的东西,例如 webpack 、npm 、nodejs 等等,很容易成就从入门到放弃的思想。这篇文章本身就是按照官方的文档中的构建流程来的(官方构建建议)。一下是构建过程。

一、准备 git bash 命令行工具

二、安装 node.js

  1. 在 node.js 中文官网正常下载安装 node.js 就可以,没有什么特别需要注意的点(傻瓜式安装)。‘
  2. 在官网下载安装 node.js 后,就已经自带 npm(包管理工具),不需要另外再进行安装 npm 了。
  3. 注意下载 node.js 版本要在 4.0 以上,避免版本过低影响使用。
  4. 打开命令行工具(随便哪个文件夹),输入命令行 node -v,npm -v,如下图,如果出现相应的版本号,则说明安装成功。

三、安装淘宝镜像

cnpm(淘宝镜像)相关:
  1. 这是一个完整 npmjs.org 镜像,是用来同步 npm 上面的模块。
  2. cnpm 的同步频率为 10 分钟 (新发布的模块有滞后性,同步是需要时间的,等不及的可以使用 npm)。
  3. 安装 cnpm 的原因:npm 的服务器是外国的,所以有时候我们安装“模块”会很很慢很慢超级慢。
  4. cnpm 的作用:淘宝镜像将 npm 上面的模块同步到国内服务器,提高我们安装模块的时间。
  5. 安装完淘宝镜像之后,cnpm 和 npm 命令行皆可使用,二者并不冲突
安装方法:打开命令行工具,输入命令行:
npm install -g cnpm --registry=https://registry.npm.taobao.org

cnpm 使用方法:

cnpm install [name]

安装模块的时候,将 npm 换成 cnpm 就行,国内很多 coder 都是使用 cnpm 的,个人建议大家都装一下,附上:淘宝镜像网址

四、安装 webpack

安装方法:打开命令行工具,输入命令行:

npm install webpack -g

安装成功后输入 webpack -v,如果出现相应的版本号,则说明安装成功。

五、安装 vue-cli 脚手架构建工具

安装方法:全局安装,随便一个文件夹,输入命令行:

npm install vue-cli -g

安装完成之后,输入命令行 vue -V 查看版本号,出现相应得到版本号即为成功
image
注:这里是大写的 V

六、通过 vue-cli,初始化 vue 项目

通过以上几步,将我们安装脚手架所需要的环境和工具都准备好好了,下面就可以使用 vue-cli 来初始化项目

  1. 新建一个 vuetext(项目名)文件夹来放置项目
  2. 在新建文件夹的上一级文件夹右键打开命令行工具,输入命令行:
vue init webpack vuetext1(项目名)

注:项目名不能大写,不能使用中文
解释一下这个命令,这个命令的意思是初始化一个 vue 项目,其中 webpack 是构建工具,也就是整个项目是基于 webpack 的。其中 vuetext1 是整个项目文件夹的名称,这个文件夹会自动生成在你指定的目录中。
3. 以下是脚手架安装过程(安装步骤解析在图片下面)
image

vue-cli 初始化项目选项配置详细解析
$ vue init webpack vuetext1--------------------- 安装vue-cli,初始化vue项目的命令
? Target directory exists. Continue? (Y/n) y---------------------找到了vuetext1这个目录是否要继续
? Target directory exists. Continue? Yes
? Project name (vuetext1)---------------------项目的名称(默认是文件夹的名称),ps:项目的名称不能有大写,不能有中文,否则会报错
? Project name vuetext1
? Project description (A Vue.js project)---------------------项目描述,可以自己写
? Project description A Vue.js project
? Author (OBKoro1)---------------------项目创建者
? Author OBKoro1 
? Vue build (Use arrow keys)--------------------选择打包方式,有两种方式(runtime和standalone),使用默认即可
? Vue build standalone
? Install vue-router? (Y/n) y--------------------是否安装路由,一般都要安装
? Install vue-router? Yes
? Use ESLint to lint your code? (Y/n) n---------------------是否启用eslint检测规则,这里个人建议选no,因为经常会各种代码报错,新手还是不安装好
? Use ESLint to lint your code? No
? Setup unit tests with Karma + Mocha? (Y/n)--------------------是否安装单元测试
? Setup unit tests with Karma + Mocha? Yes
? Setup e2e tests with Nightwatch? (Y/n) y)--------------------是否安装e2e测试 
? Setup e2e tests with Nightwatch? Yes

vue-cli · Generated "vuetext1".
To get started:)--------------------如何开始
 cd vuetext1)--------------------进入你安装的项目
 npm install)--------------------安装项目依赖
 npm run dev)--------------------运行项目
Documentation can be found at https://vuejs-templates.github.io/webpack)--------------------vue-cli官方文档

现在 vuetext1 项目已经初步初始化完成了,里面也有一些文件,但是现在还不能成功运行。

七、如何运行项目

  1. 进入你刚才创建在 vuetext1 项目的文件夹里面,在 vuetext1 项目的文件夹里面右键运行 git bash 命令行工具。
  2. 安装项目依赖。命令行: npm install。前面在项目初始化的时候,已经存在了 package.json 文件,直接使用 npm install 安装项目所需要的依赖,否则项目不能正确运行。
  3. 创建完成的“vuetext1”目录如下:
    image
  4. 到这里,我们已经成功使用 vue-cli 初始化了一个 vue 项目。

八、启动项目:

在 vuetext1 目录运行命令行 npm run dev,启动服务,服务启动成功后浏览器会默认打开一个“欢迎页面”,如下图。
image
注意:这里是默认服务启动的是本地的 8080 端口,所以请确保你的 8080 端口不被别的程序所占用,当有其他 vue 项目运行的时候,可以使用 ctrl+c 来中断运行。

PERFECT END!!!

  • JavaScript

    JavaScript 一种动态类型、弱类型、基于原型的直译式脚本语言,内置支持类型。它的解释器被称为 JavaScript 引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在 HTML 网页上使用,用来给 HTML 网页增加动态功能。

    713 引用 • 1174 回帖 • 104 关注
  • Node.js

    Node.js 是一个基于 Chrome JavaScript 运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞 I/O 模型而得以轻量和高效。

    138 引用 • 268 回帖 • 130 关注
  • webpack

    webpack 是一个用于前端开发的模块加载器和打包工具,它能把各种资源,例如 JS、CSS(less/sass)、图片等都作为模块来使用和处理。

    41 引用 • 130 回帖 • 283 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...