最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Node.js如何自動(dòng)審核團(tuán)隊(duì)的代碼

 更新時(shí)間:2016年07月20日 16:11:13   投稿:daisy  
在項(xiàng)目開發(fā)中,統(tǒng)一團(tuán)隊(duì)的代碼風(fēng)格很重要,本文介紹如何用Node.js來自動(dòng)審核,來提高您的開發(fā)速度。

前言

在團(tuán)隊(duì)開發(fā)中,無論是寫前端(js,css,html) ,還是后端 ,我們常常需要解決一個(gè)問題:如何統(tǒng)一團(tuán)隊(duì)代碼風(fēng)格。 這篇文章主要是使用pre-git , eslint , js-beautify 實(shí)現(xiàn)代碼風(fēng)格控制。

下面分別介紹這三個(gè)工具和使用方式:

pre-git

該工具能實(shí)現(xiàn)git hook的功能,在git的流程中插入一些自定義行為,例如commit之前執(zhí)行代碼檢測(cè),如果不通過則報(bào)錯(cuò)。

eslint

代碼格式審核工具,可以隨意組合配置各種風(fēng)格,用于組成團(tuán)隊(duì)的代碼統(tǒng)一規(guī)范。

js-beautiful

js代碼整理、美化工具。

然后這三個(gè)工具互相配合就形成了以下效果:

1.項(xiàng)目組長(zhǎng)定義好eslint的代碼規(guī)范。

2.使用pre-git在commit之前運(yùn)行eslint代碼監(jiān)測(cè)和js-beautiful代碼美化

3.如果通過則自動(dòng)"git add ." ,最后允許push。

實(shí)現(xiàn)

一:npm安裝上述工具

$ npm install eslint js-beautify pre-git --save-dev

二:工具的配置

在根目錄新建.eslintrc.json文件,并且把規(guī)范配置好,一下給一個(gè)精簡(jiǎn)版:

注意:如需更多檢測(cè),請(qǐng)到eslint官網(wǎng)查看

{
  "rules": {
    "comma-dangle": ["error", "never"],
    "arrow-body-style": ["warn", "always"],
    "no-const-assign": ["error"]
    },
  "parserOptions": {
    "ecmaVersion": 6
  }
}

因測(cè)試,bash 中使用js-beautiful遞歸多層文件的時(shí)候總出現(xiàn)錯(cuò)誤,所以由一腳本來進(jìn)行代碼美化:

beatufyjs.js

const fs = require( 'fs' );
const path = require( 'path' );
const child_process = require( 'child_process' );

for( let arg of process.argv.splice( 2 ) ) {
  let pathName = path.join( process.cwd(),arg );
  if( isFile( path.join( process.cwd(),arg ) ) ) {
    child_process.exec( `./node_modules/js-beautify/js/bin/js-beautify.js -P -E -j -a ${pathName} -r` , function( error, msg, stderr ) {
      console.log( msg.replace('\\\\n','') );
    } );
  } else {
    read_dir( pathName );
  }
}

function read_dir( dir ){
  let files = fs.readdirSync( dir );
  for( let file of files ) {
    let pathName = path.join( dir,file );
    if( isFile( pathName ) ) {
      child_process.exec( `./node_modules/js-beautify/js/bin/js-beautify.js -P -E -j -a ${pathName} -r` , function( error, msg, stderr ) {
        console.log( msg.replace( '\\\\n','') );
      } );
    } else {
      read_dir( pathName );
    }
  }
}

function isFile( path ){ 
  return exists( path ) && fs.statSync( path ).isFile(); 
} 

function exists( path ){ 
   return fs.existsSync( path ) || path.existsSync( path ); 
} 

三:使用上述工具

在package.json文件中配置:

{
 "name": "demo",
 "version": "1.0.0",
 "description": "",
 "main": "index.js",
 "scripts": {
  "lint": "./node_modules/.bin/eslint routes runtime utils libs --quiet",
  "lint-fix": "./node_modules/.bin/eslint routes runtime utils libs --quiet --fix",
  "js-beautify": "node --harmony --use_strict ./bin/beatufyjs.js libs middlewares index.js "
 },
 "author": "kelvv",
 "license": "ISC",
 "config": {
  "pre-git": {
   "commit-msg": "",
   "pre-commit": [
    "npm run lint-fix",
    "npm run js-beautify",
    "git add ."
   ],
   "pre-push": [],
   "post-commit": [],
   "post-checkout": [],
   "post-merge": []
  }
 },
 "devDependencies": {
  "eslint": "^2.12.0",
  "js-beautify": "^1.6.3",
  "pre-git": "^3.9.1"
 }
}

此時(shí)當(dāng)你修改其中一個(gè)文件,然后"git add && git commit -m 'msg' "的時(shí)候,pre-commit中的三條命令就會(huì)執(zhí)行,如果中途有錯(cuò)就會(huì)停止提交,修改完畢后再繼續(xù)提交。

有一點(diǎn)需要注意的是,有的格式問題不足以報(bào)錯(cuò)的話,改方法會(huì)自動(dòng)修改優(yōu)化代碼,并且自動(dòng)添加修改,最后一步,執(zhí)行:git push即可!可以結(jié)合單元測(cè)試,更佳

總結(jié)

以上就是為大家整理的如何用Node.js自動(dòng)審核團(tuán)隊(duì)的代碼的全部?jī)?nèi)容,有需要的可以進(jìn)行參考學(xué)習(xí)。

相關(guān)文章

  • Node.js圖片處理庫sharp的使用

    Node.js圖片處理庫sharp的使用

    這篇文章主要介紹了Node.js圖片處理庫sharp的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • koa大型web項(xiàng)目中使用路由裝飾器的方法示例

    koa大型web項(xiàng)目中使用路由裝飾器的方法示例

    這篇文章主要介紹了koa大型web項(xiàng)目中使用路由裝飾器的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Node.js文件操作方法匯總

    Node.js文件操作方法匯總

    本文給大家匯總了node.js實(shí)現(xiàn)文件操作的方法,非常的細(xì)致全面,希望大家能夠喜歡
    2016-03-03
  • 安裝 node-Sass 報(bào)錯(cuò)的解決記錄(三步解決法)

    安裝 node-Sass 報(bào)錯(cuò)的解決記錄(三步解決法)

    本文主要介紹了安裝 node-Sass 報(bào)錯(cuò)的解決記錄(三步解決法),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • node.js+postman+mongodb搭建測(cè)試注冊(cè)接口的實(shí)現(xiàn)

    node.js+postman+mongodb搭建測(cè)試注冊(cè)接口的實(shí)現(xiàn)

    本文主要介紹了node.js+postman+mongodb搭建測(cè)試注冊(cè)接口的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • nodejs的10個(gè)性能優(yōu)化技巧

    nodejs的10個(gè)性能優(yōu)化技巧

    在我接觸JavaScript(無論瀏覽器還是NodeJS)的時(shí)間里,總是遇到有朋友有多線程的需求。而在NodeJS方面,有朋友甚至直接說到,NodeJS是單線程的,無法很好的利用多核CPU。那么我們?cè)谑褂眠^程中,就要非常注意性能優(yōu)化了
    2014-07-07
  • nodeJS服務(wù)器的創(chuàng)建和重新啟動(dòng)的實(shí)現(xiàn)方法

    nodeJS服務(wù)器的創(chuàng)建和重新啟動(dòng)的實(shí)現(xiàn)方法

    今天小編就為大家分享一篇nodeJS服務(wù)器的創(chuàng)建和重新啟動(dòng)的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • express 項(xiàng)目分層實(shí)踐詳解

    express 項(xiàng)目分層實(shí)踐詳解

    這篇文章主要介紹了express 項(xiàng)目分層實(shí)踐詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-12-12
  • 詳解基于Vue+Koa的pm2配置

    詳解基于Vue+Koa的pm2配置

    這篇文章主要介紹了詳解基于Vue+Koa的pm2配置,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-10-10
  • nodejs實(shí)現(xiàn)一個(gè)自己的腳手架工具

    nodejs實(shí)現(xiàn)一個(gè)自己的腳手架工具

    本文介紹了如何以Node.js為基礎(chǔ),自行開發(fā)一個(gè)腳手架工具,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09

最新評(píng)論

建水县| 得荣县| 嫩江县| 乌拉特中旗| 沙湾县| 乌拉特中旗| 安庆市| 南丰县| 廉江市| 博兴县| 佛坪县| 美姑县| 连江县| 新疆| 平罗县| 儋州市| 晋江市| 石柱| 会昌县| 湘西| 喀喇沁旗| 崇州市| 巴林左旗| 大关县| 东光县| 固阳县| 金溪县| 万安县| 信丰县| 惠安县| 合山市| 乐昌市| 诏安县| 南召县| 贵溪市| 尉氏县| 舟山市| 修水县| 溧水县| 任丘市| 灵川县|