什么是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. 《Maven实战》笔记-4-生命周期和插件

    除了坐标.依赖以及仓库外,Maven另外两个核心概念是生命周期和插件. 一.生命周期 Maven的生命周期是抽象的,其本身不做任务实际的工作,实际的任务(如编译源代码)都交由插件来完成. 三套生命周期 ...

  2. RobotFramework教程使用笔记——robotframwork中文乱码显示问题

    转自:https://www.cnblogs.com/dreamyu/p/6878795.html 接口.数据库返回信息有中文的时候会显示unicode的样式,前面带个U这样的显示,如果我们想让它正常 ...

  3. Copy拷贝

    前言 copy:需要先实现 NSCopying 协议,创建的是不可变副本. mutableCopy:需要实现 NSMutableCopying 协议,创建的是可变副本. 浅拷贝:指针拷贝,源对象和副本 ...

  4. UI界面相关

    在开发中有些控件或者控件显示的属性需要经常设置,但是又是万变不离其中,经常写着一样的代码会显得冗余,不利于阅读.这里做了简化. 1.UI控件 2.颜色管理 3.图片管理 4.字体选择

  5. 为什么使用docker

    为什么要使用Docker? 作为一种新兴的虚拟化方式,Docker跟传统的虚拟化方式相比具有众多的优势. 更高效的利用系统资源 由于容器不需要进行硬件虚拟及运行完整操作系统等额外开销,Docker对系 ...

  6. hdu4658(广义五边形&分割函数2)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4658 题意:f(x) 为将 x 分成其他数和的形式的方案数.对于 t 组输入,输出 f(xi, k), ...

  7. dedecms列表页面随机缩略图调用

    如果要利用dedecms制作扁平化主题,大概也能够遇到相似的问题,那就是dedecms的缩略图机制,在没有缩略图的情况下显示单一的默认图片,如果是wordpress可以很方便的定义函数调用随机的缩略图 ...

  8. Jmeter-无法启动,'findstr'不是内部或外部命令,也不是可运行的程序

    今天有一个同事的jmeter无法安装,于是帮他看了看,报以下错误: JAVA的环境变量没有配置好,于是重新配置了下环境变量后,再启动,发现还是不好,于是网上查了下, 发现要在电脑的环境变量中增加 pa ...

  9. Flume启动时报错Caused by: java.lang.InterruptedException: Timed out before HDFS call was made. Your hdfs.callTimeout might be set too low or HDFS calls are taking too long.解决办法(图文详解)

    前期博客 Flume自定义拦截器(Interceptors)或自带拦截器时的一些经验技巧总结(图文详解) 问题详情 -- ::, (agent-shutdown-hook) [INFO - org.a ...

  10. [国家集训队]happiness 最小割 BZOJ 2127

    题目描述 高一一班的座位表是个n*m的矩阵,经过一个学期的相处,每个同学和前后左右相邻的同学互相成为了好朋友.这学期要分文理科了,每个同学对于选择文科与理科有着自己的喜悦值,而一对好朋友如果能同时选文 ...