从零开始做Vue前端架构(2)
前言
这一篇,我们将接着上篇来完成配置eslint、babel、postcss。
开发
一、配置eslint
我们采用eslint --init
的方式来创建eslintrc.js。
对了,前提我们需要全局安装eslint:npm i -g eslint
。
安装完全局eslint以后,我们在项目根目录使用eslint --init
,我选择自定义的方式来规定eslint规则:
➜ vue-construct git:(master) ✗ eslint --init
? How would you like to configure ESLint? Answer questions about your style
? Are you using ECMAScript 6 features? Yes
? Are you using ES6 modules? Yes
? Where will your code run? Browser, Node
? Do you use CommonJS? Yes
? Do you use JSX? No
? What style of indentation do you use? Spaces
? What quotes do you use for strings? Single
? What line endings do you use? Unix
? Do you require semicolons? No
? What format do you want your config file to be in? (Use arrow keys)
❯ JavaScript
当然,你可以按照自己喜欢,选择自己想要的方式,比如How would you like to configure ESLint? 这个问题的时候,可以选择popular的规则,有Google、standard等规则,选择你想要的就好。
我po下我的配置吧:
// 创建这个文件的话,本王推荐用eslint --init创建
module.exports = {"env": {"browser": true,"node": true},// https://stackoverflow.com/questions/38296761/how-to-support-es7-in-eslint// 为了让eslint支持es7或更高的语法"parser": 'babel-eslint',"extends": "eslint:recommended","parserOptions": {"sourceType": "module"},"plugins": [// https://github.com/BenoitZugmeyer/eslint-plugin-html// 支持 *.vue lint"html"],// https://eslint.org/docs/rules/"rules": {"indent": ["error",2],"linebreak-style": ["error","unix"],"quotes": ["error","single"],"semi": ["error","never"],// https://eslint.org/docs/user-guide/configuring#using-configuration-files// "off" or 0 - turn the rule off// "warn" or 1 - turn the rule on as a warning (doesn’t affect exit code)// "error" or 2 - turn the rule on as an error (exit code is 1 when triggered)'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,'no-console': 0,}
};
二、配置babel
创建.babelrc
文件,直接上配置:
{"presets": [["env",{"targets": {"browsers": ["> 1%","last 2 versions","ie >= 10"]},"modules": false,"useBuiltIns": true}]],"plugins": ["transform-object-rest-spread","syntax-dynamic-import"]
}
配合webpack配置:
{test: /\.js$/,include: [resolve('app')],use: ['babel-loader','eslint-loader']
},
我们使用的是babel-preset-env,我们知道,babel只是转译了高级语法,比如lambda,class,async等,并不会支持高级的api,所以需要babel-polyfill的帮忙。方便的是,我们只需要"useBuiltIns": true
,然后npm安装babel-polyfill,再在webpack配置中的entry带上babel-polyfill就好了。
babel-preset-env的优点:
- 通过
targets
来决定支持到那个哪些版本的语法就够了,不会过渡转译,可控性强 - 通过
useBuiltIns
来支持babel-polyfill的按需加载,而不是一口气把整个包打入,因为其实我们只用到了很小一部分
transform-object-rest-spread是为了支持const a = {name: kitty, age: 7}; const b = { ...a }
这种es7语法。
syntax-dynamic-import是为了支持const Home = () => import('../views/home')
这种语法,达到按需分割、加载的目的。
三、配置postcss
创建postcss.config.js
文件,上配置:
module.exports = {plugins: [require('autoprefixer')],// 配置autoprefixbrowsers: ["> 1%","last 2 versions","ie >= 10"]
}
总结
这篇不多,就做了三件事,eslint、babel、postcss。
下一篇我们将创建项目文件、目录架构 - 从零开始做Vue前端架构(3)
项目完整代码
Vue前端架构-by 子咻
从零开始做Vue前端架构(2)相关推荐
- 从零开始做Vue前端架构(5)
前言 弄完了前后端分离,我们自然想打包发布项目了. 不多说,就让我们来看看吧. 开发 直接上代码: const webpack = require('webpack') const path = re ...
- vue族谱架构_从零开始做Vue前端架构(1)
前言 想想也已经做过不少架构的项目了,有基于vue,基于react,基于thinkPHP,基于laravel的. 做多了,也就对现有的架构有各种想法,有好的,有坏的,总之,用起来还是不爽.vue-cl ...
- MYSQL数据库到VUE前端架构
#MYSQL数据库到VUE前端架构 ##==MYSQL数据库== 1. 安装--配置my.ini,通过DOS初始化mysql,开启mysql服务,加设置账号密码 2. Sql操作分类: ![sql操作 ...
- 三万字,100张图,1个小时,带你整体了解 vue 前端架构
整体大纲的把握 这个系列文章我尽量照顾前端的同学和后端的同学,不穿插讲述.尽量按照前端-后端-部署-运维来讲,当然中途涉及到跨域.Rest.oAuth2.0这种前后协调的还是无法避免捎带一笔. 比如: ...
- vue前端架构文档_Dubbo分布式架构搭建教育PC站-Vue前端:课程和登录页
srcouterindex.js import Vue from 'vue'import VueRouter from 'vue-router'import Vuex from 'vuex'impor ...
- 前端架构设计1:代码核心
现在的前端领域, 随着JS框架, UI框架和各种库的丰富, 前端架构也变得十分的重要. 如果一个大型项目没有合理的前端架构设计, 那么前端代码可能因为不同的开发人员随意的引入各种库和UI框架, 导致代 ...
- 前阿里P8级大神的Serverless+微前端架构学习总结
前端在写简历和面试的时候,最憋屈的是啥? 我觉得莫过于明明你有90分的实力,却只表达出20分.于是拿不到大厂面试.谈薪被压价.与心仪offer失之交臂等种种糟心结果接踵而至. 这一方面是因为表达能力欠 ...
- 前端架构师亲述:前端工程师成长之路的 N 问 及 回答
问题回答者:黄轶,目前就职于 Zoom 公司担任前端架构师,曾就职于滴滴和百度,毕业于北京科技大学. 1. 前端开发 "我自己是一名从事了8年web前端开发的老程序员(我的微信:webxxq ...
- 基于Vue2.x的前端架构,我们是这么做的
通过Vue CLI可以方便的创建一个Vue项目,但是对于实际项目来说还是不够的,所以一般都会根据业务的情况来在其基础上添加一些共性能力,减少创建新项目时的一些重复操作,本着学习和分享的目的,本文会介绍 ...
- 爱奇艺基于 Vue 的微前端架构实践
点击上方"开发者技术前线",选择"星标" 18:50 在看 真爱 来自:爱奇艺技术产品团队 前言 近来,微前端的概念非常火爆,那么什么是微前端架构?微前端架构是 ...
最新文章
- Delphi中取得和设置硬盘上文件的创建日期、修改日期、访问日期、文件属性
- Equinix 位于伦敦的LD8数据中心发生严重故障
- linux日志中显示skipping,linux推荐使用logrotate自动管理日志文件
- security和oauth2.0的整合
- 没写client,想先测试server端怎么办?
- 第7章:图像的平滑处理
- nginx正则表达式
- 工信部:1-2月我国出口手机1.6亿台 同比增加32.6%
- 轻量化网络:Xception
- 北斗导航 | 基于最小二乘残差法与奇偶矢量法的RAIM算法(附代码)
- 处女座的砝码 数学结论题
- 用 Dev-C++ 编写简单的平均数/中位数/众数/方差/一元线性回归方程计算器(附带控制台颜色设置,选择界面)
- wds(无线分布式系统)
- pandas数据日期函数之date_range()、resample()与to_period()
- 微信小程序常见面试题总结
- HBuilder/HBuilderX真机运行、手机运行、真机联调常见问题
- 2019肖秀荣考研政治3件套【全】
- 多校官宣:第二轮“双一流”,新增这些学科!
- html5 jquery 效果,精挑整理 8款HTML5/jQuery应用,高端大气上档次特效
- 中信科移动IPO过会:年营收57亿 拟募资40亿重点研发5G