什么是vue脚手架?

  即可以快速构建vue项目的工具,通过它,我们可以将vue项目所需要的文件等安装完成。

为什么要是用vue脚手架,优点何在?

  因为创建一个vue项目需要很多的依赖,文件的设置等,而通过vue脚手架搭建出来的项目可以快速构建项目并且专注于代码,而不是将时间浪费在安装依赖上面。

vue脚手架的缺点是什么?

  因为,通过vue-cli构建的项目,package.json中其实有很多都是我们所不需要的,但是通过npm install 还是会安装。

  所以,为了避免这种情况的发生,我们在使用vue脚手架搭建了项目之后需要根据自己的需要进行相应的修改,以适应自己的需要。

安装vue-cli脚手架

  这里默认已经安装了node、cnpm,所以直接安装vue-cli,如下所示:

npm install -g vue-cli

  注意:全局安装一定要使用管理员打开cmd。

使用vue-cli构建项目

vue init webpack firstvue

这里解释一下命令:

  • vue init 即使用vue-cli初始化一个项目。
  • webpack 是说使用webpack作为构建工具。
  • firstvue 是项目名称。 注意: 项目名称推荐使用小写字母。 

 命令输入后,会进行下面的几个阶段:

  • 选择项目名称。 默认即可,但是名称不可包含大写字母,阮一峰曾介绍过
  • 项目描述。 使用默认即可。
  • Author。 作者,随便输点什么。
  • Runtime-compiler 运行加编译,这是推荐的,直接回车即可。
  • Install vue-router? 即路由,确定安装。
  • 使用Eslint 可以暂时不用,但是多人合作时,还是可以用的。
  • Setup unit tests with Karma + Mocha? (Y/n) 是否选择单元测试,安装即可。
  • Setup e2e tests with Nightwatch(Y/n)?   使用e2e单元测试,安装即可。

  安装完成之后,可以看到他的提示:

  To get started:

     cd firstVue
npm install
npm run dev

  

查看项目目录

  通过上面的构建之后,我们就可以在firstvue中看到下面的文件目录:

注意: 其中的build和config都是和webpack相关的配置, src是我们写源代码的地方, static存放一些静态文件如css和js和一些第三方文件, test用于测试文件。

2017年5月21日补充:一般来说src是我们存放源代码的地方,这里的所有文件最后在production时都会打包到static下,而static下的文件如flexible.js它就不会被webpack打包,而是直接使用。

其中,build文件是一些操作文件,  使用npm run *    时其实执行的就是这里的文件。如下所示:

  "scripts": {
"dev": "node build/dev-server.js",
"start": "node build/dev-server.js",
"build": "node build/build.js",
"unit": "cross-env BABEL_ENV=test karma start test/unit/karma.conf.js --single-run",
"e2e": "node test/e2e/runner.js",
"test": "npm run unit && npm run e2e"
},

即后面我们要说的运行项目就是运行build下的dev-server.js文件。

我们主要修改、写代码的文件是在src中,即source资源文件,可以看到source文件中包括了assets文件,这个文件用于存放一下静态文件,components文件,这个文件主要用于存放一些vue文件,以及router文件,用来配置路由,最后就是app.vue和main.js入口文件,main.js ,webpack入口文件,webpack四大特性entry入口、output输出,loader加载器,plugins插件,可以再项目中build\webpack.base.conf.js第12行看到这个入口文件是哪个。。

config文件是用来做一些配置信息的。

test文件就是我们最后使用e2e和unit进行测试的。

最后在根目录下的.babelrc是用来进行babelrc转译的,.editorconfig和配置有关,.gitignore是用来告诉git在上传文件、多人合作时需要忽略的文件,因为一些文件的上传时没有必要的。

.postcssrc.js 暂时用不到~

然后我们可以在package.json中看到下面的内容:

{
"name": "first-vue",
"version": "1.0.0",
"description": "A Vue.js project",
"author": "JohnZhu",
"private": true,
"scripts": {
"dev": "node build/dev-server.js",
"start": "node build/dev-server.js",
"build": "node build/build.js",
"unit": "cross-env BABEL_ENV=test karma start test/unit/karma.conf.js --single-run",
"e2e": "node test/e2e/runner.js",
"test": "npm run unit && npm run e2e"
},
"dependencies": {
"vue": "^2.2.6",
"vue-router": "^2.3.1"
},
"devDependencies": {
"autoprefixer": "^6.7.2",
"babel-core": "^6.22.1",
"babel-loader": "^6.2.10",
"babel-plugin-transform-runtime": "^6.22.0",
"babel-preset-env": "^1.3.2",
"babel-preset-stage-2": "^6.22.0",
"babel-register": "^6.22.0",
"chalk": "^1.1.3",
"connect-history-api-fallback": "^1.3.0",
"copy-webpack-plugin": "^4.0.1",
"css-loader": "^0.28.0",
"eventsource-polyfill": "^0.9.6",
"express": "^4.14.1",
"extract-text-webpack-plugin": "^2.0.0",
"file-loader": "^0.11.1",
"friendly-errors-webpack-plugin": "^1.1.3",
"html-webpack-plugin": "^2.28.0",
"http-proxy-middleware": "^0.17.3",
"webpack-bundle-analyzer": "^2.2.1",
"cross-env": "^4.0.0",
"karma": "^1.4.1",
"karma-coverage": "^1.1.1",
"karma-mocha": "^1.3.0",
"karma-phantomjs-launcher": "^1.0.2",
"karma-phantomjs-shim": "^1.4.0",
"karma-sinon-chai": "^1.3.1",
"karma-sourcemap-loader": "^0.3.7",
"karma-spec-reporter": "0.0.30",
"karma-webpack": "^2.0.2",
"lolex": "^1.5.2",
"mocha": "^3.2.0",
"chai": "^3.5.0",
"sinon": "^2.1.0",
"sinon-chai": "^2.8.0",
"inject-loader": "^3.0.0",
"babel-plugin-istanbul": "^4.1.1",
"phantomjs-prebuilt": "^2.1.14",
"chromedriver": "^2.27.2",
"cross-spawn": "^5.0.1",
"nightwatch": "^0.9.12",
"selenium-server": "^3.0.1",
"semver": "^5.3.0",
"shelljs": "^0.7.6",
"opn": "^4.0.2",
"optimize-css-assets-webpack-plugin": "^1.3.0",
"ora": "^1.2.0",
"rimraf": "^2.6.0",
"url-loader": "^0.5.8",
"vue-loader": "^11.3.4",
"vue-style-loader": "^2.0.5",
"vue-template-compiler": "^2.2.6",
"webpack": "^2.3.3",
"webpack-dev-middleware": "^1.10.0",
"webpack-hot-middleware": "^2.18.0",
"webpack-merge": "^4.1.0"
},
"engines": {
"node": ">= 4.0.0",
"npm": ">= 3.0.0"
},
"browserslist": [
"> 1%",
"last 2 versions",
"not ie <= 8"
]
}

 其中包含了很多依赖,包括webapck、express、vue相关、karma相关、babel相关,接下来我们就需要安装了。

安装依赖  

cnpm install

进入目录根问价下安装依赖。  

安装完成之后就可以在根目录下发现 node_modules 文件了,这个文件中包含了我们刚才下载的所有依赖文件。

这个文件很大,所以也就知道为什么大家都不上传了。

运行项目

npm run dev

执行完这个命令之后我们就可以在浏览器中输入localhost:8080,  访问了。

注意: 这里自动使用了热加载 --- 即修改文件之后不需要重新运行而是直接刷新浏览器就可以看到效果了。

注意: 这里使用了npm run dev就直接运行是因为我们在 package.json中设置了如下代码:

  "scripts": {
"dev": "node build/dev-server.js",
"start": "node build/dev-server.js",
"build": "node build/build.js",
"unit": "cross-env BABEL_ENV=test karma start test/unit/karma.conf.js --single-run",
"e2e": "node test/e2e/runner.js",
"test": "npm run unit && npm run e2e"
},

即 npm run dev 就是node build/dev-server.js, 即运行 build 下的dev-server.js文件。

运行结果如下:

为什么要使用 npm run dev ,而不直接运行build下的文件呢?

执行npm run dev命令,程序会先找到根目录下的package.json文件,找到文件中的scripts项,找到对应的dev命令,执行dev对应的命令,这里我们也可以不用npm run dev 直接输入dev后面的命令效果是一样的,这样做的目的是因为有时命令会很长有很难记住,这种方式会非常的方便。

我们可以通过 npm run 查看可以通过npm run运行的所有命令。 如下所示:

至此,脚手架工具搭建项目已经完成。

  

参考文章:http://blog.csdn.net/u013182762/article/details/53021374

vue脚手架 && 实例的更多相关文章

  1. 前端MVC Vue2学习总结(二)——Vue的实例、生命周期与Vue脚手架(vue-cli)

    一.Vue的实例 1.1.创建一个 Vue 的实例 每个 Vue 应用都是通过 Vue 函数创建一个新的 Vue 实例开始的: var vm = new Vue({ // 选项 }) 虽然没有完全遵循 ...

  2. vue脚手架项目如何在控制台打印组件实例

    需要在浏览器上安装拓展程序vue开发工具,安装好后在控制台上输入$vm即可打印vue组件实例对象. Vue2.3开发工具都有,可自行下载 百度网盘链接提取码:si5l

  3. Vue脚手架(vue-cli)搭建和目录结构详解

    一.环境搭建 1.安装node.npm.webpack,不多说 2.安装vue-cli脚手架构建工具,打开命令行工具输入:npm install vue-cli -g,安装完成之后输入 vue -V( ...

  4. 教你用webpack搭一个vue脚手架[超详细讲解和注释!]

    1.适用人群 1.对webpack知识有一定了解但不熟悉的同学. 2.女同学!!!(233333....) 2.目的 在自己对webpack有进一步了解的同时,也希望能帮到一些刚接触webpack的同 ...

  5. 教你用webpack搭一个vue脚手架[超详细讲解和注释!](转载)

    1.适用人群 1.对webpack知识有一定了解但不熟悉的同学. 2.女同学!!!(233333....) 2.目的 在自己对webpack有进一步了解的同时,也希望能帮到一些刚接触webpack的同 ...

  6. 前端开发3年了,竟然不知道什么是 Vue 脚手架?(下)

    上一篇文章<前端开发3年了,竟然不知道什么是 Vue 脚手架?(上)>介绍了什么是脚手架,以及Vue-cli 2.x如何创建项目,创建的项目结构.这篇文章介绍 Vue-cli 3.x 如何 ...

  7. vue - Vue脚手架

    今天的内容vue脚手架,越来越有内味了,也慢慢地开始有点难度了哈哈,但是没有关系,慢慢学慢慢琢磨,我倒是感觉有点越来越像node了,不知道怎么回事,这是要向后端发展的节奏啊 一.初始化Vue脚手架 1 ...

  8. Vue.js实例练习

    最近学习Vue.js感觉跟不上节奏了,Vue.js用起来很方便. 主要实现功能,能添加书的内容和删除.(用的Bootstrap的样式)demo链接 标题用了自定义组件,代码如下: components ...

  9. 【vue系列之一】使用vue脚手架工具搭建vue-webpack项目

    对于Vue.js来说,如果你想要快速开始,那么只需要在你的html中引入一个<script>标签,加上CDN的地址即可.但是,这并不算是一个完整的vue实际应用.在实际应用中,我们必须要一 ...

随机推荐

  1. winform GDI基础(一)

    1获取画布 (1)从PaintEventArgs类中获取画布 private void Form1_Paint(object sender, PaintEventArgs e) { Graphics ...

  2. 理解JavaScript普通函数以及箭头函数里使用的this

    this 普通函数的this 普通函数的this是由动态作用域决定,它总指向于它的直接调用者.具体可以分为以下四项: this总是指向它的直接调用者, 例如 obj.func() ,那么func()里 ...

  3. shell脚本实现自动保留最近n次备份记录

    项目中出现的问题 某天上午服务器出现卡顿特别严重,页面加载速度奇慢,并且某些页面刷新出现404的问题,就连服务器的tab命令的自动提示都出现了问题,楼主费了九牛二虎之力,根据服务器排查发现,服务器数据 ...

  4. Iterator 遍历器

    1.遍历器(Iterator)是一种接口,为各种不同的数据结构提供统一的访问机制.任何数据结构只要部署Iterator接口,就可以完成遍历操作(即依次处理该数据结构的所有成员). 2.Iterator ...

  5. MySQL之常用命令

    前言 在说MySQL命令之前,需要介绍一些navicat:navicat是一套快速.可靠并且价格相宜的数据库管理工具,它的出现简化了数据库的管理,降低了管理成本,提高了对数据库的管理效率.Navica ...

  6. hdu1798(圆的位置关系)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1798 题意:给出两个圆的圆心坐标与半径,求他们相交部分的大小 思路:有三种情况: 1. 两圆相离,ar ...

  7. CI框架源码学习笔记3——Log.php

    上一节说完了Common.php,然而跟代码打交道总是免不了日志记录,所以这一节我们说说Log.php文件. 先看看类里面的几个属性, protected $_log_path;  日志路径 prot ...

  8. 选课 ( dp 树形dp 动态规划 树规)

    和某篇随笔重了?!!?!?!?!?!?不管了留着吧 题目: 在大学里每个学生,为了达到一定的学分,必须从很多课程里选择一些课程来学习,在课程里有些课程必须在某些课程之前学习,如高等数学总是在其它课程之 ...

  9. EOS 修改文件名称与文件夹名称

    最近有一个需求,需要修改EOS名称,将所有文件里面的EOS改为UOS,文件夹名称也需要修改,然后重新构建项目,于是写了一个小程序进行修改.如果有相同项目类似的修改,可以在下面这个程序稍做修改就可以了. ...

  10. 基础线程机制--Daemon,sleep(),yield()

    Daemon   守护线程是程序运行时在后台提供服务的线程,不属于程序中不可或缺的部分,当所有非守护进程执行完成时,程序也就终止,同时会杀死所有的守护进程.main()属于非守护线程.可以使用setD ...