摘要:搭建自己的前端腳手架一般新開發(fā)一個項目時,我們會首先搭建好一個腳手架,然后才會開始寫代碼。搭建腳手架可以用等命令行工具,也可以直接用等模板,如果這些都不能滿足你的個性化需求,可以嘗試搭建自己的前端腳手架。
搭建自己的前端腳手架
一般新開發(fā)一個項目時,我們會首先搭建好一個腳手架,然后才會開始寫代碼。搭建腳手架可以用 create-react-app、vue-cli、yeoman 等命令行工具,也可以直接用 html5-boilerplate、react-boilerplate、hackathon-starter 等模板,如果這些都不能滿足你的個性化需求,可以嘗試搭建自己的前端腳手架。
一般來說,腳手架包括目錄結構定義、必要的項目配置文件與工具配置文件、工具與命令。
一個基本的腳手架:
|-- / 項目根目錄 |-- src/ 源代碼目錄 |-- package.json npm 項目文件 |-- README.md 項目說明文件 |-- CHANGELOG.md 版本更新記錄 |-- .gitignore git 忽略配置文件 |-- .editorconfig 編輯器配置文件 |-- .npmrc npm 配置文件 |-- .npmignore npm 忽略配置文件 |-- .eslintrc eslint 配置文件 |-- .eslintignore eslint 忽略配置文件 |-- .stylelintrc stylelint 配置文件 |-- .stylelintignore stylelint 忽略配置文件 |-- .prettierrc prettier 配置文件 |-- .prettierignore prettier 忽略配置文件 |-- .babelrc babel 配置文件 |-- webpack.config.js webpack 配置文件 |-- rollup.config.js rollup 配置文件 |-- gulpfile.js gulp 配置文件
一些擴展的腳手架:
|-- / 項目根目錄 |-- bin/ bin 目錄 |-- test/ 測試目錄 |-- docs/ 文檔目錄 |-- jest.config.js jest 配置文件 |-- .gitattributes git 屬性配置 |-- .travis.yml travis 配置文件 |-- appveyor.yml appveyor 配置文件1. package.json: npm 項目文件
{ "name": "name", 項目名字 "version": "0.0.1", 版本 "main": "index.js", 入口文件 "bin": "bin/bin.js", bin 文件 "description": "description", 描述 "repository": { "type": "git", "url": "url" }, "keywords": [], "homepage": "homepage", 主頁 "readmeFilename": "README.md", "devDependencies": { 工具依賴 "babel-eslint": "^8.2.6", "eslint": "^4.19.1", "husky": "^0.14.3", "lint-staged": "^7.2.0", "prettier": "^1.14.0", "stylelint": "^9.3.0", "eslint-config-airbnb": "^17.0.0", "eslint-config-prettier": "^2.9.0", "eslint-plugin-babel": "^5.1.0", "eslint-plugin-import": "^2.13.0", "eslint-plugin-jsx-a11y": "^6.1.0", "eslint-plugin-prettier": "^2.6.2", "eslint-plugin-react": "^7.10.0", "stylelint-config-prettier": "^3.3.0", "stylelint-config-standard": "^18.2.0" }, "scripts": { 可以添加更多命令 "precommit": "npm run lint-staged", "prettier": "prettier --write "./**/*.{js,jsx,css,less,md,json}"", "eslint": "eslint .", "eslint:fix": "eslint . --fix", "stylelint": "stylelint "./**/*.{css,less}"", "stylelint:fix": "stylelint "./**/*.{css,less}" --fix", "lint-staged": "lint-staged" }, "lint-staged": { 對提交的代碼進行檢查與矯正 "**/*.{js,jsx}": [ "eslint --fix", "prettier --write", "git add" ], "**/*.{css,less}": [ "stylelint --fix", "prettier --write", "git add" ], "**/*.{md,json}": [ "prettier --write", "git add" ] }, "engines": { 運行時對 node 版本的要求 "node": ">=8.0.0" }, "dependencies": {} 開發(fā)依賴 }1.1 main: 項目入口文件
如果你將當前的項目發(fā)布為一個 npm 包,而其他的包在引用你的包時,構建工具就會去找 main 字段定義的入口文件,詳細參考 package.json#main。
還有其他的特殊的入口文件,參考 package.json 非官方字段集合。
1.2 bin: 配置命令行可執(zhí)行文件如果你需要將當前的項目安裝成一個全局的命令,那么就需要指定這個字段。
詳細信息參考 package.json#bin。
1.3 scripts: 配置項目命令這里定義的命令可以用 npm run 來調用。比如上面定義的幾個命令:
npm run prettier npm run eslint npm run eslint:fix npm run stylelint npm run stylelint:fix
一般來說,還可能定義如下的一些命令:
{ "test": "", 測試 "build": "", 構建 "dev": "", 開發(fā) ... }2. README.md: 項目說明文件
項目說明的入口文件,包括文檔。一般 git 項目 web 端首頁顯示的就是這個文件的內容,包括 github、bitbucket、gitlab。
文件格式是 markdown,具體介紹與語法可以參考 https://www.markdownguide.org/。
3. CHANGELOG.md: 版本更新記錄一般項目都會有這個文件,用于記錄版本更新及相應的功能變化,比如 react 的 CHANGELOG。
文件格式也是 markdown。
4. .gitignore: git 忽略配置文件用于指定哪些文件或目錄不需要進行 git 版本控制。
比如:
.DS_STORE node_modules build/ *.log* .idea .vscode
詳細信息參考 https://git-scm.com/docs/gitignore。
5. .editorconfig: 編輯器配置文件用于指定編輯器特定的配置。比如,不同的編輯器對 tab 的定義不一樣,可能是 2 個空格,也可能是 4 個或者 8 個,所以就需要用這個文件來統(tǒng)一配置編輯器。
比如:
# http://editorconfig.org root = true [*] indent_style = space indent_size = 2 end_of_line = lf charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true [*.md] trim_trailing_whitespace = false
詳細信息參考 http://editorconfig.org。
6. .npmrc: npm 配置文件比如:
package-lock=false
詳細信息參考 https://www.npmjs.com.cn/files/npmrc/。
7. .npmignore: npm 忽略配置文件詳細信息參考 keeping-files-out-of-your-package。
8. .eslintrc, .eslintignore: eslint 相關配置文件用于 js, jsx 代碼檢查與矯正,讓你編寫的代碼符合特定的規(guī)范與風格。
詳細信息參考 https://eslint.org/。
9. .stylelintrc, .stylelintignore: stylelint 相關配置文件用于 css, less, scss 代碼檢查與矯正,讓你編寫的代碼符合特定的規(guī)范與風格。
詳細信息參考 https://stylelint.io/。
10. .prettierrc, .prettierignore: prettier 相關配置文件優(yōu)化 js, jsx, css, less, scss, md, json 等文件的格式。
詳細信息參考 https://prettier.io/。
11. .babelrc: babel 配置文件es6 -> es5 轉碼。
詳細信息參考 https://babeljs.io/。
12. webpack.config.js: webpack 配置文件前端打包工具。
詳細信息參考 https://webpack.js.org/。
13. rollup.config.js: rollup 配置文件另一個前端打包工具。
詳細信息參考 https://rollupjs.org/。
14. gulpfile.js: gulp 配置文件前端文件流操作構建工具。
詳細信息參考 https://www.gulpjs.com/。
15. jest.config.js: jest 配置文件前端測試組件。
詳細信息參考 https://jestjs.io/。
16. .gitattributes: git 屬性配置詳細信息參考 https://git-scm.com/docs/gitattributes。
17. .travis.yml: travis 配置文件一個持續(xù)集成服務。
詳細信息參考 https://www.travis-ci.org/。
18. appveyor.yml: appveyor 配置文件又一個持續(xù)集成服務。
詳細信息參考 https://www.appveyor.com/。
19. 后續(xù)更多博客,查看 https://github.com/senntyou/blogs
作者:深予之 (@senntyou)
版權聲明:自由轉載-非商用-非衍生-保持署名(創(chuàng)意共享3.0許可證)
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/108519.html
摘要:后來經(jīng)過排查你會發(fā)現(xiàn)是由于目前還沒有版本。可以使用該方式解決。這就是我為什么不推薦你使用創(chuàng)建腳手架的原因此文的受眾是想要進階中級的初級前端人員。 最近在知乎看到一個問題,原問題如下: 很奇怪,為什么現(xiàn)在能找到自己手動創(chuàng)建vue腳手架的文章非常少,而且大家似乎對webpack4的熱情并不高,對于想基于vue2.0+webpack4搭建一個腳手架的我來說資料真是少得可憐。難道現(xiàn)在一般的做...
摘要:在這里我按照自己的理解粗略的畫一個圖吧,主要也是為了讓大家能更簡單明白我的意思文章寫的越來越高級了Next.js腳手架進階系列 完美契合ant-design 封裝fetch && 增加中間件 部署上線 Zeit Now部署 擴展為全棧腳手架 寫在前面 作為一個前端,或者說普遍意義上的前端,應該是只做前端應該做的事,涉及到后端相關的知識可能接觸不多,甚至,我們在使用服務端渲染框架的時候也只...
摘要:五六月份推薦集合查看最新的請點擊集前端最近很火的框架資源定時更新,歡迎一下。蘇幕遮燎沈香宋周邦彥燎沈香,消溽暑。鳥雀呼晴,侵曉窺檐語。葉上初陽乾宿雨,水面清圓,一一風荷舉。家住吳門,久作長安旅。五月漁郎相憶否。小楫輕舟,夢入芙蓉浦。 五、六月份推薦集合 查看github最新的Vue weekly;請::點擊::集web前端最近很火的vue2框架資源;定時更新,歡迎 Star 一下。 蘇...
摘要:五六月份推薦集合查看最新的請點擊集前端最近很火的框架資源定時更新,歡迎一下。蘇幕遮燎沈香宋周邦彥燎沈香,消溽暑。鳥雀呼晴,侵曉窺檐語。葉上初陽乾宿雨,水面清圓,一一風荷舉。家住吳門,久作長安旅。五月漁郎相憶否。小楫輕舟,夢入芙蓉浦。 五、六月份推薦集合 查看github最新的Vue weekly;請::點擊::集web前端最近很火的vue2框架資源;定時更新,歡迎 Star 一下。 蘇...
閱讀 2155·2021-11-12 10:36
閱讀 2147·2021-09-03 10:41
閱讀 2761·2021-08-19 10:57
閱讀 1230·2021-08-17 10:14
閱讀 1487·2019-08-30 15:53
閱讀 1210·2019-08-30 15:43
閱讀 975·2019-08-30 13:16
閱讀 2983·2019-08-29 16:56