摘要:引子基本上上優(yōu)秀的項(xiàng)目上面有很多零零碎碎的文件。其他平臺(tái)除了,市面上還有其他很多平臺(tái),如項(xiàng)目中使用的和等等。利用提供的若干規(guī)則,造出一份適合于自己或團(tuán)隊(duì)的代碼規(guī)范配置,同時(shí)用規(guī)則去忽略文件只是用來(lái)純粹美化代碼。
引子
基本上 GitHub 上優(yōu)秀的javascript項(xiàng)目上面有很多零零碎碎的文件。如圖,以koa為例
下文將一一說(shuō)明這些個(gè)“奇怪”的文件是干什么的...
持續(xù)集成篇持續(xù)集成(CI, Continuous integration),是將我們的代碼規(guī)范化流程化。
相比于系統(tǒng)集成,CI希望每一次微小的代碼修改,都會(huì)進(jìn)行一次集成(可能包括構(gòu)建,測(cè)試,發(fā)布等階段),這樣極大地加強(qiáng)了項(xiàng)目工程的可控性。
從 GitLab 8.0 開始,GitLab CI 就已經(jīng)集成在 GitLab 中[1]。那么 GitHub 中對(duì)于CI的支持如何呢?GitHub 可以采用任意第三方的 CI 服務(wù),下面主要介紹其中的一種:travis-ci
travis-ci (.travis.yml)官網(wǎng):https://travis-ci.org/
該平臺(tái)也是本人經(jīng)常使用的 CI 平臺(tái),需要在項(xiàng)目跟目錄下添加文件 .travis.yml,如:
language: node_js node_js: stable install: - npm install script: - npm test
便是一個(gè)簡(jiǎn)單的配置文件參考,travis-ci 有下面幾個(gè)生命周期,順序如下:[2]
before_install
install
before_script
script
after_success 或者 after_failure
before_deploy
deploy
after_deploy
after_script
同時(shí) travis-ci 還提供了一大批的 Provider,以方便我們來(lái)書寫一些常用的部署動(dòng)作[3]
配置好了之后,同時(shí)在travis-ci認(rèn)證提供之后,并且給對(duì)應(yīng)的repo賦予權(quán)限,那么我們的每次commit都會(huì)觸發(fā)按照上面的執(zhí)行過(guò)程,在travis-ci提供的集群上執(zhí)行。
其他 CI 平臺(tái)除了 travis-ci,市面上還有其他很多 CI 平臺(tái),如:react 項(xiàng)目中使用的 appveyor 和 CircleCi 等等。至于這些平臺(tái)的對(duì)比則不是該文章的討論范疇了。
代碼規(guī)范篇代碼規(guī)范又是另一個(gè)話題了,但是目的都是為了提高代碼的可控性,減少 bug 率。
ESLint (.eslintrc.*, .eslintignore)利用 ESLint 提供的若干規(guī)則,造出一份適合于自己或團(tuán)隊(duì)的代碼規(guī)范配置,同時(shí) .eslintignore 用 glob file 規(guī)則去忽略文件
Prettier (.prettierrc, .prettierignore)Prettier 只是用來(lái)純粹美化代碼。
工具篇 CodeCov (.codecov.yml)一個(gè)好的工程,離不開一系列的測(cè)試,CodeCov 則是用來(lái)報(bào)告測(cè)試中代碼覆蓋率的工具
Babel (.babelrc, .babelignore) NPM (.npmrc)這倆兄弟不多做解釋了,前端都知道~
其他 .editorconfighttp://editorconfig.org/
我們?cè)诓煌庉嬈?,不同系統(tǒng)平臺(tái)編寫同一項(xiàng)目代碼時(shí),常常會(huì)遇到代碼格式不統(tǒng)一的問(wèn)題,該文件則是用來(lái)抹去這種差異!
以上便是比較常用的一些javascript項(xiàng)目的配置文件說(shuō)明,后續(xù)還會(huì)不斷添加,歡迎大家伙指正添加。
參考[1] 用 GitLab CI 進(jìn)行持續(xù)集成
[2] travis-ci: Customizing the Build
[3] travis-ci: Deployment
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/90703.html
摘要:中的配置熱加載插件安裝中的配置優(yōu)化插件為組件分配,通過(guò)這個(gè)插件可以分析和優(yōu)先考慮使用最多的模塊,并為它們分配最小的壓縮代碼分離和文件 0 前言 本文是針對(duì)TCM項(xiàng)目所做的WebPack配置文件總結(jié),主要概述了一些常用配置選項(xiàng)和插件使用,對(duì)以后的項(xiàng)目有指導(dǎo)意義。TCM的webpack配置文件包括webapck.config.base.js、webapck.config.dev.js、we...
摘要:中的配置熱加載插件安裝中的配置優(yōu)化插件為組件分配,通過(guò)這個(gè)插件可以分析和優(yōu)先考慮使用最多的模塊,并為它們分配最小的壓縮代碼分離和文件 0 前言 本文是針對(duì)TCM項(xiàng)目所做的WebPack配置文件總結(jié),主要概述了一些常用配置選項(xiàng)和插件使用,對(duì)以后的項(xiàng)目有指導(dǎo)意義。TCM的webpack配置文件包括webapck.config.base.js、webapck.config.dev.js、we...
摘要:是的默認(rèn)模塊管理器,一個(gè)命令行下的軟件,用來(lái)安裝和管理模塊,同時(shí)也可以管理其他開放式的模塊代碼。的包管理器可以查看所有可使用的命令。發(fā)布記得在推之前先登錄要不然會(huì)報(bào)錯(cuò)。最后需要把文件里面的刪除掉要不然上傳時(shí)會(huì)忽略掉打包的文件。 本文主要介紹npm的常用命令,以及如何發(fā)布一些常用的js模塊化代碼到npm上面方便日后的使用,和舉例如何把一個(gè)vue組件打包發(fā)布到npm到最后下載到本地使用的過(guò)...
摘要:前言講起前端,我們就不能不講與,在這兩種技術(shù)廣泛應(yīng)用的今天,他們的擴(kuò)展也是層出不窮,的擴(kuò)展有等,的超集有等。如下注意你的樣式文件一定要在引入前先引入。截止目前,已經(jīng)發(fā)布了最新的版本。 前言:講起前端,我們就不能不講CSS與Javascript,在這兩種技術(shù)廣泛應(yīng)用的今天,他們的擴(kuò)展也是層出不窮,css的擴(kuò)展有Less、Sass、Stylus等,js的超集有Typescript等。今天我們就簡(jiǎn)...
閱讀 2936·2021-10-19 10:09
閱讀 3157·2021-10-09 09:41
閱讀 3412·2021-09-26 09:47
閱讀 2729·2019-08-30 15:56
閱讀 618·2019-08-29 17:04
閱讀 1011·2019-08-26 11:58
閱讀 2527·2019-08-26 11:51
閱讀 3387·2019-08-26 11:29