第2章 项目准备工作
栏目: JavaScript · 发布时间: 6年前
内容简介:内容均为《Vue2.0开发企业级移动端音乐Web App 》学习笔记包括项目需求分析、脚手架初始化代码、项目目录介绍及图标字体、公共样式等资源的准备 。stylus文件夹
内容均为《Vue2.0开发企业级移动端音乐Web App 》学习笔记
包括项目需求分析、脚手架初始化代码、项目目录介绍及图标字体、公共样式等资源的准备 。
1、公共资源准备
stylus文件夹
| 文件名称 | 描述 |
|---|---|
| variable.styl | 样式变量文件(如颜色定义规范,文字大小规范) |
| reset.styl | 重置默认样式文件 |
| base.styl | 基本样式(body,html,在此可能会引用variable.styl 来使用它的变量) |
| icon.styl | 字体图标 |
| index.styl | 主体样式(引入reset.styl、base.styl 、icon.styl ) |
fonts文件夹
| 文件名称 | 描述 |
|---|---|
| music-icon.ttf | 字体文件 |
image公用图片
2、脚手架初始化代码
vue init webpack vue-music 复制代码
- 是否需要路由 y
- 是否使用eslint y
- 是否用单元测试 n
- 是否用e2e测试 n
cd vue-music cnpm install cnpm run dev 复制代码
3、建立项目文件,使得项目结构更加清晰
| src文件目录 | 描述 |
|---|---|
| api | 数据交互 |
| common | 公共的字体图片样式脚本文件 (font 放字体 、image 图片、js 插件、stylus 样式) |
| components | 组件文件 |
| router | 路由文件 |
| store | vuex集中管理状态 |
4、修改eslint的配置规则 (.eslintrc文件)
使用beauty美化代码之后,一般地,代码会符合eslint的校验要求。但是,禁止函数圆括号之前有一个空格(space-before-function-paren)和文件末尾保留一行空行(eol-last)这两个规则 ,在beauty中没有对应的匹配规则。如果,这两个要求不是非要遵守,可以在.eslintrc文件中,将其设置为0
'eol-last': 0, 'space-before-function-paren': 0 复制代码
这样,在编写代码时,不用考虑代码格式。保存时,自动被美化,且符合eslint的校验要求
扩展
- 用vscode的话,可以在vscode安装eslint插件
- 齿轮图标-设置-输入autoFixOnSave-打上勾
这样可以在每次保存的自动格式化,但是默认只支持 javascript .js 文件
- 齿轮图标-设置-输入validate -打上勾给需要自动格式化的文件,默认是全勾选的
这样一旦保存的话,就可以将自己的代码自动格式化为符合eslint规则的代码哦
5、安装插件
babel-runtime和babel-polyfill 插件可以让一些低版本浏览器对es6的支持
cnpm install --save babel-runtime cnpm install --save-dev babel-polyfill cnpm install --save fastclick 复制代码
- babel-polyfill Babel 默认只转换新的 JavaScript 语法,而不转换新的 API。例如,Iterator、Generator、Set、Maps、Proxy、Reflect、Symbol、Promise 等全局对象,以及一些定义在全局对象上的方法(比如 Object.assign)都不会转译。 如果想使用这些新的对象和方法,则需要为当前环境提供一个polyfill
- babel-runtime babel-runtime 是为了减少重复代码而生的。 babel-polyfill解决了Babel不转换新API的问题,但是直接在代码中插入帮助函数,会导致污染了全局环境,并且不同的代码文件中包含重复的代码,导致编译后的代码体积变大。 (比如:上述的帮助函数_defineProperty有可能在很多的代码模块文件中都会被插入) Babel为了解决这个问题,提供了单独的包babel-runtime用以提供编译模块的 工具 函数, 启用插件babel-plugin-transform-runtime后,Babel就会使用babel-runtime下的工具函数 (请参考: babel-runtime和babel-polyfill的作用介绍和使用 )
- fastclick 解决移动端300ms延迟
6、在vue-cli脚手架使用插件
import 'babel-polyfill'// 引入babel-polyfill import fastclick from 'fastclick'// 引入fastclick fastclick.attach(document.body)// 使用fastclick 复制代码
7、安装stylus stylus-loader
cnpm install stylus stylus-loader --save-dev 复制代码
8、文件路径配置
当我们引入common下的文件时,我们平时可能这样写
import './common/stylus/index.styl' 复制代码
现在我们可以在webpack.base.conf.js,看resolve这个函数 __dirname为当前目录build,..(往上找)到dir对应的目录。
function resolve (dir) {
return path.join(__dirname, '..', dir)
}
复制代码
在webpack.base.conf.js 配置
resolve: {
extensions: ['.js', '.vue', '.json'],
alias: {
'vue$': 'vue/dist/vue.esm.js',
'@': resolve('src'),
'common': resolve('src/common'),
'components': resolve('src/components'),
'base': resolve('src/base'),
'api': resolve('src/api'),
}
},
复制代码
这样我们就可以直接这样写了
import 'common/stylus/index.styl' 复制代码
以上所述就是小编给大家介绍的《第2章 项目准备工作》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Golang实现简单爬虫框架(1)——项目介绍与环境准备
- 用 Go 开发接口服务--准备项目所需的 Go 类包
- php – Laravel:一般错误:1615准备好的声明需要重新准备
- 详解Openstack环境准备
- 深度有趣 | 02 准备工作
- 2019 面试准备 - 图片
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Powerful
Patty McCord / Missionday / 2018-1-25
Named by The Washington Post as one of the 11 Leadership Books to Read in 2018 When it comes to recruiting, motivating, and creating great teams, Patty McCord says most companies have it all wrong. Mc......一起来看看 《Powerful》 这本书的介绍吧!