為expressjs做貢獻
嗨!我叫 Peter,如果你不認識我,我是電腦科學專業的學生,目前正在學習 David Humphrey 教授的 2024 年開源主題課程。
自 2024 年 9 月以來,我一直致力於在開源社群中建立自己的影響力。如果你想跟隨我的旅程,可以在 GitHub 上找到我:

peterdanwan (Peter Wan) · GitHub
全端開發人員 |遊戲與人工智慧愛好者 -彼得丹萬

了解專案的範圍
第一步:了解我正在做什麼。 expressjs.com 是express 的官方文件網站,express 是最受歡迎的 Node.js Web 框架之一。雖然從他們設計精美的網站上可以很快掌握這一點,但旅程才剛開始。

Express - Node.js Web 應用程式框架
Express 是一個快速、無主見、簡約的 Node.js Web 框架,為 Web 和行動應用程式提供了一組強大的功能。
了解當前的問題
熟悉專案後,我尋找了一個可以解決的問題。我找到了這個:
連結損壞和頁面遺失
第1684章
以下連結已損壞 _includes/header/header-id.html
_includes/header/header-th.html
建議更改為:發布更改日誌缺少頁面導致 UZ 語言控制台錯誤: /css/langs/uz.css
建議新增此頁面。
我選擇這個問題是因為它涉及 HTML 和 CSS - 我熟悉且熟悉的技術。然而,看起來簡單的東西實際上教會了我關於開源開發的重要一課:
即使是看起來熟悉的任務也可能涉及不熟悉的領域。
儲存庫使用了我以前從未接觸過的技術,這才是真正學習的開始。我花了大約一個小時才決定是否嘗試這個問題——回想起來可能太久了。我很猶豫,因為該專案使用了 Ruby,這對我來說是全新的。
劇透警告:設定 Ruby 是...一次冒險。
了解如何在本地設定項目
設定本地開發環境通常是開源貢獻中最具教育意義的部分之一。
透過嘗試在本地運行expressjs.com,我了解了一些關於 Ruby 和 Jekyll 的知識。
以下是我的旅程:
最初的困惑:我先直接在 Windows 上安裝 Ruby。雖然它有效,但並不理想,因為我安裝的版本與專案中使用的版本不同而出現問題。 Windows 上的版本管理並不有趣。因此,我卸載了 Windows 上安裝的 Ruby 及其其他依賴項,並尋找替代解決方案。
WSL 發現:我的研究使我得出的結論是,我應該在Windows Subsystem for Linux (WSL) 上運行Ruby,因為它提供了更好的開發環境並可以存取強大的Ruby 版本管理器(RVM),它使我能夠處理使用不同版本Ruby 的專案。對我來說,安裝 RVM 的感覺非常相似,因為我使用 nvm-windows 來允許我在不同的節點版本之間切換。
版本管理學習曲線:我再次了解了 RVM 以及它與 Node.js 的 nvm 的相似之處。這教會了我在開發環境中版本管理的重要性。
以下是我用來準備開發環境的實際指令:
## 1. Installing RVM (Ruby Version Manager) # First, import GPG keys needed to verify RVM installation gpg --keyserver hkp://keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB # Download and install RVM \curl -sSL https://get.rvm.io | bash -s stable # Verify RVM is installed and get its path which rvm # Load RVM into your current shell session source /home/peter/.rvm/scripts/rvm ## 2. Installing Ruby # Install Ruby version 3.3.5 (latest stable as of early 2024) rvm install 3.3.5 # Set 3.3.5 as your default Ruby version rvm use 3.3.5 # Verify RVM and Ruby installations rvm -v ruby -v ## 3. Setting up Jekyll # Install Jekyll and Bundler gems gem install bundler jekyll # Install project dependencies from Gemfile (must be within the target directory with the Gemfile) bundle install # Start the Jekyll server with live reload and external access # --host 0.0.0.0 allows access from other devices on your network # --livereload automatically refreshes your browser when files change bundle exec jekyll serve --host 0.0.0.0 --livereload
解決問題
配置好我的開發環境後,我就可以開始解決手邊的問題,即簡單地更新
包含指向英文版連結的損壞連結的錨標記(因為英文版連結並未損壞)。
這是整個貢獻中最簡單的部分。
我還確保查看一些日誌以查看是否有任何需要修復的錯誤。我建議添加另一個檔案 css/id.css,它遵循相同的
已新增的文件的編碼格式,因為我有一個可以解決某些錯誤日誌的暗示。
expressjs.com 的維護者之一 Chris Del,提供了非常即時的回饋,表明這是要做的事情(謝謝 Chris!)。
因此,我也將此變更新增至我的拉取請求。
等待合併變更並學習參與討論
話雖如此,我所做的更改現在正在等待合併到expressjs.com的主分支中。
後續也特別討論了expressjs.com網站的標準。即:
使用者應該被重定向到有效的英文頁面而不是正確語言的損壞連結嗎?
這不是由我決定,但我想參與討論。您可以在這裡關注討論。
學習成長為開源開發人員
最初的一個簡單的 HTML/CSS 修復變成了一次旅程,教會了我有關開源開發的寶貴經驗:
走出舒適圈:雖然我選擇了一個涉及熟悉技術(HTML/CSS)的問題,但我最終學習了一個全新的技術堆疊(Ruby/Jekyll)。這告訴我,當我們願意應付不熟悉的事情時,成長就會發生。
技術發展:設定開發環境、管理版本和使用新工具都是至關重要的技能。每一個挑戰都會讓下一個挑戰變得更容易實現。
社群參與:透過諸如語言重定向討論之類的討論,我了解到開源不僅僅是程式碼 - 它是關於參與影響專案決策的有意義的討論。
展望未來,我計劃透過以下方式進行改進:
- 應對日益具有挑戰性的問題
- 學習使用不同的技術堆疊和開發環境
- 更積極參與專案討論與決策
- 貢獻文件並幫助其他新人
- 在開源社群內建立關係
最重要的是,我了解到,成為一名高效的開源開發人員並不是要了解一切,而是要願意學習任何東西。每一次貢獻,無論多小,都是一個成長的機會,並對我們關心的專案產生正面影響。
如果您正在考慮參與開源,請記住:從小事做起,保持好奇心,不要害怕邊學習邊學習。社區隨時幫助您成長。
以上是為expressjs做貢獻的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

Python和JavaScript開發者的薪資沒有絕對的高低,具體取決於技能和行業需求。 1.Python在數據科學和機器學習領域可能薪資更高。 2.JavaScript在前端和全棧開發中需求大,薪資也可觀。 3.影響因素包括經驗、地理位置、公司規模和特定技能。

實現視差滾動和元素動畫效果的探討本文將探討如何實現類似資生堂官網(https://www.shiseido.co.jp/sb/wonderland/)中�...

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

如何在JavaScript中將具有相同ID的數組元素合併到一個對像中?在處理數據時,我們常常會遇到需要將具有相同ID�...

不同JavaScript引擎在解析和執行JavaScript代碼時,效果會有所不同,因為每個引擎的實現原理和優化策略各有差異。 1.詞法分析:將源碼轉換為詞法單元。 2.語法分析:生成抽象語法樹。 3.優化和編譯:通過JIT編譯器生成機器碼。 4.執行:運行機器碼。 V8引擎通過即時編譯和隱藏類優化,SpiderMonkey使用類型推斷系統,導致在相同代碼上的性能表現不同。

探索前端中類似VSCode的面板拖拽調整功能的實現在前端開發中,如何實現類似於VSCode...
