因为教程是vue1.0了,vue2.0改了很多很多结构,花了大量的时间在找解决方法上,特此笔记
1、结构大改:之前教程所说的中枢是app.vue,实际上现在是\src\components下的HelloWorld.vue,而且还是通过比较复杂的路由套过去的,本来不想改的,最后还是改了。
2、安装选择:
Project name (vuetest) 项目名称,可以自己指定,也可直接回车,按照括号中默认名字(注意这里的名字不能有大写字母,如果有会报错Sorry, name can no longer contain capital letters),阮一峰老师博客为什么文件名要小写 ,可以参考一下。
Project description (A Vue.js project) 项目描述,也可直接点击回车,使用默认名字
Author (........) 作者,不用说了,你想输什么就输什么吧
接下来会让用户选择
Runtime + Compiler: recommended for most users 运行加编译,既然已经说了推荐,就选它了
Runtime-only: about 6KB lighter min+gzip, but templates (or any Vue-specificHTML) are ONLY allowed in .vue files - render functions are required elsewhere 仅运行时,已经有推荐了就选择第一个了
Install vue-router? (Y/n) 是否安装vue-router,这是官方的路由,大多数情况下都使用,不过我的第一个项目中的路由是自己写的,没有使用到官方路由,因为有特殊需求,也因为比较早,官方尚未成熟,vue-router官网 。这里就输入“y”后回车即可。
Use ESLint to lint your code? (Y/n) 是否使用ESLint管理代码,ESLint是个代码风格管理工具,是用来统一代码风格的,并不会影响整体的运行,这也是为了多人协作,新手就不用了,一般项目中都会使用。ESLint官网
接下来也是选择题Pick an ESLint preset (Use arrow keys) 选择一个ESLint预设,编写vue项目时的代码风格,因为我选择了使用ESLint
Standard (https://github.com/feross/standard) 标准,有些看不明白,什么标准呢,去给提示的standardgithub地址看一下, 原来时js的标准风格
AirBNB (https://github.com/airbnb/javascript) JavaScript最合理的方法,这个github地址说的是JavaScript最合理的方法
none (configure it yourself) 这个不用说,自己定义风格
具体选择哪个因人而异吧 ,我选择标准风格
Setup unit tests with Karma + Mocha? (Y/n) 是否安装单元测试,教程未安装
Setup e2e tests with Nightwatch(Y/n)? 是否安装e2e测试 ,教程未安装
♦ 教程选择图
n、数据模拟dev-server.js文件消失:4-5 mock数据(模拟后台数据)中提到,要在dev-server.js文件中进行后台数据模拟,但是最新的vue里dev-server.js被替换成了webpack-dev-conf.js !!
解决:在模拟后台数据的时候直接在webpack-dev-conf.js文件中修改
第一步,在const portfinder = require(‘portfinder’)后添加
//第一步
const express = require('express')
const app = express()//请求server
var appData = require('../data.json')//加载本地数据文件
var seller = appData.seller//获取对应的本地数据
var goods = appData.goods
var ratings = appData.ratings
var apiRoutes = express.Router()
app.use('/api', apiRoutes)//通过路由请求数据
第二步:找到devServer,在里面加上before()方法
//第二步找到devServer,在里面添加
before(app) {
app.get('/api/seller', (req, res) => {
res.json({
errno: 0,
data: seller
})//接口返回json数据,上面配置的数据seller就赋值给data请求后调用
}),
app.get('/api/goods', (req, res) => {
res.json({
errno: 0,
data: goods
})
}),
app.get('/api/ratings', (req, res) => {
res.json({
errno: 0,
data: ratings
})
})
}
重新启动运行命令的:npm run dev才能生效
n、报错1:无法安装"stylus-loader":5-3 组件拆分(下)中:提到要在“package.json”中加入"stylus-loader": "^3.0.2",(版本号webstore会自己提醒),但是会出现报错“requires a peer of stylus@>=0.52.4 but none is installed.”
解决:在“package.json”中"stylus-loader": "^3.0.2"下面再添加一条插件 "stylus": "^0.54.5",(输入^之后选择webstore提醒的版本号) 然后执行安装命令,还有2个报错,但是不影响热加载了。
n、报错2:缺少fsevent依赖:npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.4 (node_modules\fsevents)
解决: fsevent是mac osx系统的,在win或者Linux下使用了 所以会有警告,忽略即可