前言

这一篇,我们将接着上篇来完成配置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的优点:

  1. 通过targets来决定支持到那个哪些版本的语法就够了,不会过渡转译,可控性强
  2. 通过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)相关推荐

  1. 从零开始做Vue前端架构(5)

    前言 弄完了前后端分离,我们自然想打包发布项目了. 不多说,就让我们来看看吧. 开发 直接上代码: const webpack = require('webpack') const path = re ...

  2. vue族谱架构_从零开始做Vue前端架构(1)

    前言 想想也已经做过不少架构的项目了,有基于vue,基于react,基于thinkPHP,基于laravel的. 做多了,也就对现有的架构有各种想法,有好的,有坏的,总之,用起来还是不爽.vue-cl ...

  3. MYSQL数据库到VUE前端架构

    #MYSQL数据库到VUE前端架构 ##==MYSQL数据库== 1. 安装--配置my.ini,通过DOS初始化mysql,开启mysql服务,加设置账号密码 2. Sql操作分类: ![sql操作 ...

  4. 三万字,100张图,1个小时,带你整体了解 vue 前端架构

    整体大纲的把握 这个系列文章我尽量照顾前端的同学和后端的同学,不穿插讲述.尽量按照前端-后端-部署-运维来讲,当然中途涉及到跨域.Rest.oAuth2.0这种前后协调的还是无法避免捎带一笔. 比如: ...

  5. vue前端架构文档_Dubbo分布式架构搭建教育PC站-Vue前端:课程和登录页

    srcouterindex.js import Vue from 'vue'import VueRouter from 'vue-router'import Vuex from 'vuex'impor ...

  6. 前端架构设计1:代码核心

    现在的前端领域, 随着JS框架, UI框架和各种库的丰富, 前端架构也变得十分的重要. 如果一个大型项目没有合理的前端架构设计, 那么前端代码可能因为不同的开发人员随意的引入各种库和UI框架, 导致代 ...

  7. 前阿里P8级大神的Serverless+微前端架构学习总结

    前端在写简历和面试的时候,最憋屈的是啥? 我觉得莫过于明明你有90分的实力,却只表达出20分.于是拿不到大厂面试.谈薪被压价.与心仪offer失之交臂等种种糟心结果接踵而至. 这一方面是因为表达能力欠 ...

  8. 前端架构师亲述:前端工程师成长之路的 N 问 及 回答

    问题回答者:黄轶,目前就职于 Zoom 公司担任前端架构师,曾就职于滴滴和百度,毕业于北京科技大学. 1. 前端开发 "我自己是一名从事了8年web前端开发的老程序员(我的微信:webxxq ...

  9. 基于Vue2.x的前端架构,我们是这么做的

    通过Vue CLI可以方便的创建一个Vue项目,但是对于实际项目来说还是不够的,所以一般都会根据业务的情况来在其基础上添加一些共性能力,减少创建新项目时的一些重复操作,本着学习和分享的目的,本文会介绍 ...

  10. 爱奇艺基于 Vue 的微前端架构实践

    点击上方"开发者技术前线",选择"星标" 18:50 在看 真爱 来自:爱奇艺技术产品团队 前言 近来,微前端的概念非常火爆,那么什么是微前端架构?微前端架构是 ...

最新文章

  1. Delphi中取得和设置硬盘上文件的创建日期、修改日期、访问日期、文件属性
  2. Equinix 位于伦敦的LD8数据中心发生严重故障
  3. linux日志中显示skipping,linux推荐使用logrotate自动管理日志文件
  4. security和oauth2.0的整合
  5. 没写client,想先测试server端怎么办?
  6. 第7章:图像的平滑处理
  7. nginx正则表达式
  8. 工信部:1-2月我国出口手机1.6亿台 同比增加32.6%
  9. 轻量化网络:Xception
  10. 北斗导航 | 基于最小二乘残差法与奇偶矢量法的RAIM算法(附代码)
  11. 处女座的砝码 数学结论题
  12. 用 Dev-C++ 编写简单的平均数/中位数/众数/方差/一元线性回归方程计算器(附带控制台颜色设置,选择界面)
  13. wds(无线分布式系统)
  14. pandas数据日期函数之date_range()、resample()与to_period()
  15. 微信小程序常见面试题总结
  16. HBuilder/HBuilderX真机运行、手机运行、真机联调常见问题
  17. 2019肖秀荣考研政治3件套【全】
  18. 多校官宣:第二轮“双一流”,新增这些学科!
  19. html5 jquery 效果,精挑整理 8款HTML5/jQuery应用,高端大气上档次特效
  20. 中信科移动IPO过会:年营收57亿 拟募资40亿重点研发5G

热门文章

  1. ABAP术语-V1 Module
  2. pt-table-checksum
  3. iOS开发网络篇—发送GET和POST请求(使用NSURLSession)
  4. 业内对楼市回暖时间几成共识:尚需一年
  5. ffmpeg 转换VC工具 V1.1.1
  6. Java图形组件 OpenSwing
  7. ASP.NET的安全性
  8. [CTSC1999][网络流24题]家园
  9. 获取JQuery UI tabs中被选中的tabs的方法
  10. UIImagePickerController的知识点总结