脚手架设置
脚手架安装
vue init <template-name> <project-name>
可用模板:
- webpack - A full-featured Webpack + vue-loader setup with hot reload, linting, testing & css extraction.
- webpack-simple - A simple Webpack + vue-loader setup for quick prototyping.
- browserify - A full-featured Browserify + vueify setup with hot-reload, linting & unit testing.
- browserify-simple - A simple Browserify + vueify setup for quick prototyping.
- pwa - PWA template for vue-cli based on the webpack template
- simple - The simplest possible Vue setup in a single HTML file
流程:
? Project name // 项目名
? Project description // 项目描述
? Author // 开发者
? Vue build standalone
? Install vue-router? // 是否安装Vue路由,单页面应用建议开启
? Use ESLint to lint your code? // 是否启用eslint检测规则,建议开启
? Pick an ESLint preset Standard // 选择eslint检测规则的版本
? Setup unit tests with Karma + Mocha? No // 测试项目
? Setup e2e tests with Nightwatch? No // 测试项目
进入项目文件夹
cd 文件夹名
安装依赖
安装sass依赖
npm install node-sass --save-dev
npm install sass-loader --save-dev
或
npm i node-sass sass-loader -D
安装axios依赖(与后台数据交换)
npm install axios --save
或
npm i axios -S
更换webpack-dev-server
版本
webpack-dev-server
高于2.7.1的版本使用了es6,为了兼容低版本的浏览器,使用2.7.1版本的webpack-dev-server
npm rm webpack-dev-server --save-dev
npm install webpack-dev-server@2.7.1 --save-dev
或
npm rm webpack-dev-server -D
npm i webpack-dev-server@2.7.1 -D
安装默认依赖
npm install
或
npm i
自定义eslint检测规则
在.eslintrc.js文件里添加
// 没有分号不警报
'semi': ['error', 'never'],
// 忽略函数的参数前必须有空格的警告
'space-before-function-paren': ['error', 'never'],
// 忽略缩进警报
'indent': 0,
// 尽可能地使用单引号,允许字符串使用单引号或双引号,只要字符串中包含了一个其它引号
'quotes': ['error', 'single', { 'avoidEscape': true }]
以上代码根据个人代码习惯进行设置。
设置视口
以下代码适合移动版
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">
添加报错代码
<script>
window.onerror = function (message) {
alert(message)
}
</script>
以上代码最好在编译前删除,防止正式版有弹窗报警。
vscode调试配置
需安装vscode插件:Debugger for Chrome
在配置文件launch.json
中添加
"configurations": [
{
"name": "启动Chrome",
"type": "chrome",
"request": "launch",
"url": "http://localhost:8080",
"sourceMaps": true,
"webRoot": "${workspaceRoot}",
"userDataDir": "${workspaceRoot}/.vscode/chrome"
},
{
"name": "监听Chrome",
"type": "chrome",
"request": "attach",
"port": 9222,
"url": "http://localhost:8080",
"webRoot": "${workspaceRoot}"
}
]
项目目录设置
- 在
src
文件夹下添加common
文件夹放公共的模块和资源 - 在
common
文件夹下添加fonts
(字体)文件夹、js
(javascript)文件夹、scss
(scss样式)文件夹 - 在主目录下的
static
文件夹下添加css
文件夹,里面放reset.css
- 在
.gitignore
文件里添加要忽略的文件和文件夹
导入
导入css重制设置
在main.js
添加
// 导入css重制设置
import '../static/css/reset.css'
导入axios组件
在main.js
添加
// 导入axios组件
import axios from 'axios'
// 全局注册axios,不是vue插件
Vue.prototype.axios = axios
// 接口根地址
axios.defaults.baseURL = 'http://www.sample.com/'
编辑路由
设置基于vue-router的单页应用的标题
// 导入模块和组件
import Vue from 'vue'
import Router from 'vue-router'
import login from '@/components/login/login'
import index from '@/components/index/index'
// 注册vue-router
Vue.use(Router)
// 单页应用页面的设置
const router = new Router({
routes: [
// 登录
{
path: '/login',
component: login,
meta: {
title: '登录'
}
},
// 首页
{
path: '/index',
component: index,
meta: {
title: '首页'
}
}
]
})
// 对单页应用的每个页面的title进行设置
router.afterEach(route => {
// 从路由的元信息中获取title属性
if (route.meta.title) {
document.title = route.meta.title
// 如果是iOS8以下的设备(使用UIWebView),则使用如下hack的写法实现页面标题的更新
if (navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)) {
const hackIframe = document.createElement('iframe')
hackIframe.style.display = 'none'
hackIframe.src = '/robots.txt?r=' + Math.random()
document.body.appendChild(hackIframe)
setTimeout(_ => {
document.body.removeChild(hackIframe)
}, 300)
}
}
})
// 导出
export default router
开始编程
启动项目
npm run dev
打开调试
打开vscode调试面板,点击启动Chrome
。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。