前端开发中代码风格工具指南

我用云企信emsweb项目简单试验了下在sublime3中使用代码风格检查工具及公司代码规范,简单整理使用经验分享给大家,大家一起补充完善~

CSS代码检查

  1. 安装Nodejs 模块:安装 postcss、stylelint

  2. 安装 Sublime Text扩展:使用 Package Control 依次安装 SublimeLinter、SublimeLinter-contrib-stylelint

  3. 复制css代码检查配置文件 ./ stylelintrc 至项目根目录下


    图一
  4. 项目添加到工作区,打开目录中css/scss 文件,默认自动开始代码检查并显示结果,如图:红色为error 黄色为warning。


    检查结果
  5. 我们还可以设置检查方式和结果展示效果,设置位置如图:


    设置位置
  6. 修改前我们可以先借助 HTML-CSS-JS Prettify 进行代码格式化

  7. 点击有标记的代码行,下方会有错误描述,根据描述修改代码。


    错误描述
使用 HTML-CSS-JS Prettify 进行代码格式化。
  • 安装 Sublime Text 扩展:使用 Package Control 安装 HTML-CSS-JS Prettify。
  • 格式化当前文件,可以通过工具栏点击Prettify Code或使用快捷键(推荐) Ctrl+Shift+H (or Cmd+Shift+H for Mac).
  • 可以设置自动格式化代码时间(打开/保存/... ),设置位置如图


    设置位置
  • 点击上图中 Prettify Preferences -Default/User 可修改格式配置。

JS代码检查

  1. 安装 Sublime Text扩展:再使用 Package Control 安装 SublimeLinter-contrib-eslint
  2. package.json 文件中根据项目框架添加代码检查所需工具
"babel-eslint": "^7.2.3",
"eslint": "^4.9.0",
"eslint-plugin-angular": "^3.1.1",
"eslint-plugin-react": "^7.4.0",

或者通过命令行 npm install XXXX --save-dev 安装

  1. 项目根目录下创建 .eslintrc文件并复制 codestyle-v2.0-alpha/config/ 文件夹下对应的规则文件内容。
  2. 仔细阅读文件内容部署,并根据项目实际情况修改文件上部分内容。
  • 根据项目实际情况修改环境等信息
  • 有些插件的全局变量找不到,在globals 中添加变量
 "extends": "eslint:recommended", // eslint推荐规范,避免代码错误和潜在风险
    // "parser": "babel-eslint",//指定ESLint 解析器,默认使用Espree npm install babel-eslint --save-dev
    "plugins": [ //ESLint 支持使用第三方插件。在使用插件之前,你必须使用 npm 安装它。
        "angular"//eslint-plugin-angular插件,npm install eslint-plugin-angular --save-dev
    ],
    "parserOptions": {
        "ecmaVersion": 5, //设置为 3, 5 (默认), 6、7 或 8 指定你想要使用的 ECMAScript 版本。你也可以指定为 2015(同 6),2016(同 7),或 2017(同 8)使用年份命名
        "sourceType":"script", //设置为 "script" (默认) 或 "module"(如果你的代码是 ECMAScript 模块)。
        "ecmaFeatures": { //这是个对象,表示你想使用的额外的语言特性
            "globalReturn":true, //允许在全局作用域下使用 return 语句
            "impliedStrict":true //启用全局 strict mode (如果 ecmaVersion 是 5 或更高)
        }
     },
    "env": {  //指定环境,browser、node、commonjs、shared-node-browser……
        "es6": false, // 支持es6全局变量
        "browser": true, // browser 全局变量。
        "node": true //Node.js 全局变量和 Node.js 作用域。
    },
    //+++++开发人员根据项目自定义+++++++
    "globals": { //使用 globals 指出你要使用的全局变量
        "angular": false, //允许变量被重写
        "$": false, //不允许被重写
        "CryptoJS": false,
        "$rootScope":false,
        "_":false,
        "AMap":false,
        "AMapUI":false,
        "poiPickerReady":false,
    },
  1. 打开目录中js文件,默认自动开始代码检查,提示及查看方法同CSS
  2. 借助 HTML-CSS-JS Prettify 进行代码格式化时发现需要修改两个配置
{
    "js":
    {
        // Should the space before an anonymous function's parens be added, "function()" vs "function ()"  
        "space_after_anon_function": true,
        // [before-newline|after-newline|preserve-newline] Set operator position
        "operator_position": "after-newline",
    }
}

补充资料

HTML-CSS-JS Prettify 文档
eslint 文档

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,496评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,407评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,632评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,180评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,198评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,165评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,052评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,910评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,324评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,542评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,711评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,424评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,017评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,668评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,823评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,722评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,611评论 2 353

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,077评论 25 707
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,804评论 6 342
  • 版权声明:本文为博主原创文章,未经博主允许不得转载。 webpack介绍和使用 一、webpack介绍 1、由来 ...
    it筱竹阅读 11,115评论 0 21
  • Sublime Text:一款具有代码高亮、语法提示、自动完成且反应快速的编辑器软件,不仅具有华丽的界面,还支持插...
    xiaotao123阅读 9,493评论 0 27
  • Sublime Text:一款具有代码高亮、语法提示、自动完成且反应快速的编辑器软件,不仅具有华丽的界面,还支持插...
    追風逸少丶阅读 11,322评论 1 34