老大要求瞭解接觸「簡單」(呵呵)的前端開源項目配合進行新項目開發,不免有過「慌的一匹」的感受,正所謂「欲練神功,必先......,額,有本武林祕籍瞅瞅嘛」。沒錯,這篇私人祕籍就是爲那些準備上手常見的前端項目提供招式參考。前端
這裏全程以ant-design-pro項目爲例子node
README.md文檔就是該項目的說明文檔,通常放置在項目的根目錄下。在該文檔中每每蘊含着項目構建者對該項目的描述(Introduction,Features,Usage, License...),經過該文檔能夠快速瞭解項目的技術棧,如何構建等重要信息。react
package.json文件,定義了這個項目所須要的各類npm依賴,以及項目的配置信息。運行npm install 命令會根據這個文件下載對應的npm依賴包。 常見的package.json字段(可對照後面的package.json代碼查看)git
注意:還會有更多其餘的字段,若是須要了解,則直接在google搜索對應額字段則知道該字段的做用。github
{
"name": "ant-design-pro",
"version": "2.2.1",
"description": "An out-of-box UI solution for enterprise applications",
"private": true,
"scripts": {
"start": "cross-env APP_TYPE=site umi dev",
"build": "umi build",
"lint-staged": "lint-staged",
"test": "umi test",
"prettier": "node ./scripts/prettier.js"
},
"dependencies": {
"@antv/data-set": "^0.10.1"
},
"devDependencies": {
"@types/react": "^16.8.1"
},
"engines": {
"node": ">=8.0.0"
},
"browserslist": [
"> 1%",
"last 2 versions",
"not ie <= 10"
]
}
複製代碼
若是使用的腳手架爲開源腳手架的話,在github上會找到對應的說明。要判斷該腳手架是否爲開源腳手架,請按照第一二步驟來肯定。ajax
項目的入口文件的文件名通常爲:main.js、app.js、index.js等。入口文件都放置於src文件夾目錄下(具體應該查看對應的項目構建工具配置)。這個文件通常會引用全局用到的npm依賴包,路由文件,重置樣式文件,全局樣式文件......npm
注意:有些項目裏面找不到這些入口文件怎麼辦?那就要看看項目中使用的腳手架了,有些腳手架(例如:Nuxt.js)會直接幫你自動生成該文件(這裏就不討論優劣了)。json
路由文件能夠準確的找到哪一個頁面對應着哪一個組件,這個文件在咱們之後寫業務的時候常常會修改到。咱們能夠根據URL上的路由來根據路由文件查找對應的組件文件。路由文件能夠多種多樣,整體來講應該是一個路由對應着一個組件,根據路由能夠找到對應的組件文件進行代碼修改。一樣,本身須要添加頁面時,也須要首先在這個頁面進行路由聲明,才能訪問對應的路由顯示出對應的頁面組件。瀏覽器
注意:有些項目裏面找不到這些路由文件怎麼辦?那就要看看項目中使用的腳手架了,有些腳手架(例如:Nuxt.js)會直接幫你自動生成該文件。bash
eg:
export default [
// user
{
path: '/user',
component: '../layouts/UserLayout',
routes: [
{ path: '/user', redirect: '/user/login' },
{ path: '/user/login', component: './User/Login' },
{ path: '/user/register', component: './User/Register' },
{ path: '/user/register-result', component: './User/RegisterResult' },
],
}
]
複製代碼
入門一個語言最經典的是Hello World.而上手一個項目的最好的應該是作一個todo list了吧。若是能夠寫出對應的todo list的增刪改查,基本上可以在該項目進行基本的業務編寫。
基本步驟:
做爲一條鹹魚,僅僅是會用該項目中的腳手架來寫項目是遠遠不夠的。應該要了解腳手架的使用,而且要跟着設計者的思路,本身可以打造一個相似的腳手架。接下來會介紹如何打造一個屬於本身的腳手架的基本思路。
最後特別鳴謝barretem對於本博文的討論分析。