成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

向Node.js核心貢獻代碼的六個步驟

開發 前端
本文的目的是幫助您完成向 Node.js 核心文件貢獻代碼的第一個提交!向 Node.js 貢獻代碼的方式有很多種??梢詤⑴c某個工作組(網站或者聯機診斷工作組等)的工作,可以在 Nodeschools 開設課程提供 Node.js 的教學, 讓那些有著同樣困惑的人可以向你學習。

[[205695]]

本文的目的是幫助您完成向 Node.js 核心文件貢獻代碼的***個提交!

向 Node.js 貢獻代碼的方式有很多種??梢詤⑴c某個工作組(網站或者聯機診斷工作組等)的工作,可以在 Nodeschools 開設課程提供 Node.js 的教學, 讓那些有著同樣困惑的人可以向你學習。

當然你也可以開始直接向 Node.js 的核心貢獻,比如回答使用者的問題,甚至向項目提交代碼。

接下來,我們介紹提交代碼以獲取樂趣和成就感的必要步驟。

# 1 Fork 項目

請訪問位于 https://github.com/nodejs/node 的 Node.js 官方倉庫,并將該項目 fork 到您的 Github 帳戶。

 

Contributing to the Node.js Core - Fork

#2 設置 Git 倉庫

擁有了自己的倉庫,就可以直接進入終端使用如下命令克隆項目。

  1. $ git clone git@github.com:YOUR_USER_NAME/node.git 

然后用 cd node命令進入目錄。

注意,你修改 Node.js 的同時,其他人也會同步修改! 因此一定要不定期接受新提交,否則你的倉庫會遺漏代碼。

為了保持你的 fork 是***的, 你必須設置另外一個源去拉取其他人提交的代碼。 為此,在終端中運行以下命令,該命令將設置一個名為upstream的遠程連接。

  1. $ git remote add upstream https://github.com/nodejs/node.git 

建立upstream之后,你可以運行下面的命令,一次獲得所有來自官方 Node.js 倉庫的***提交:

  1. $ git pull upstream --rebase 
  2. # it will produce an output similar to this one 
  3. remote: Counting objects: 9150, done.   
  4. remote: Compressing objects: 100% (11/11), done.   
  5. remote: Total 9150 (delta 5908), reused 5917 (delta 5908), pack-reused 3231   
  6. Receiving objects: 100% (9150/9150), 6.71 MiB | 2.06 MiB/s, done.   
  7. Resolving deltas: 100% (7343/7343), completed with 3204 local objects. 

#3 構建 Node.js 編譯文件

你已經克隆了項目,是時候本地構建編譯 Node.js 文件了!

首先要確認你已經安裝了 GCC 和 Clang(如果你是 Windows 系統可以裝 Visual Studio)環境 , 然后正確安裝 Python 2.6 或 2.7 和 GNU Make。

運行下面的命令,開始構建編譯 Node.js:

  1. $ ./configure 
  2. $ make -j4 

運行 make 帶 -j4 參數將使編譯同時運行 4 個編譯作業,這樣可以顯著減少構建時間。

構建完成后,可以運行如下命令使用你本地構建的 Node.js了:

  1. $ ./node --version 
  2. v9.0.0-pre 

更多關于平臺支持和項目構建的信息可以在這里找到:https://github.com/nodejs/node/blob/master/BUILDING.md

#4 編寫測試用例,運行測試

測試文件應該使用短線串聯的命名方式。

  • 測試文件名的***部分應該是以test開始。
  • 第二部分是你要測試的模塊信息。
  • 第三部分通常是你要測試的方法或者事件的名字。

因此,如果您要為 HTTP 請求編寫一個測試用例,可以把它命名為:test-http-posting-form-data.js。

這是從 Node.js 項目中拿到的示例,看看測試文件長啥樣:

  1. /* 
  2. In the first line of the test file you should   
  3. enable strict mode, unless you test something   
  4. that needs it disabled   
  5. */ 
  6. 'use strict'
  7. /* 
  8. the common package gives you some commonly   
  9. used testing methods, like mustCall   
  10. */ 
  11. const common = require('../common'); 
  12. /* 
  13. a small description on what you are testing   
  14. */ 
  15. // This test ensures that the http-parser can handle UTF-8 characters 
  16. // in the http header. 
  17. const assert = require('assert');   
  18. const http = require('http'); 
  19. /* 
  20. the body of the actual test - tests should exit with code 0 on success   
  21. */ 
  22. const server = http.createServer(common.mustCall((req, res) => {   
  23.   res.end('ok'); 
  24. })); 
  25. server.listen(0, () => {   
  26.   http.get({ 
  27.     port: server.address().port, 
  28.     headers: { 'Test''Düsseldorf' } 
  29.   }, common.mustCall((res) => { 
  30.     assert.strictEqual(res.statusCode, 200); 
  31.     server.close(); 
  32.   })); 
  33. }); 

使用下面的命令來運行測試:

  1. $ make test 

測試內部模塊的小竅門

要測試內部模塊,必須在測試用例中依賴要測試的模塊。問題是,默認情況下 Node.js 不讓你那樣做。解決的方式就是運行 Node.js 時帶上--expose-internals 參數。

編寫測試用例的更多信息可以在這里找到:https://github.com/nodejs/node/blob/master/doc/guides/writing-tests.md

#5 找一些有意義的事做

截至本文撰寫之時,Node.js 項目中有 563 個待解決的問題 。所以剛開始的時候,這些問題就是你要找的可以做的事情,作為新人你可以選擇一個問題來解決。

幸運的是,問題跟蹤器中有幾個標簽可以幫助找到自己中意的***個貢獻。

***個叫做 good first contribution,第二個是 help wanted。首先我建議從 good first contribution 開始挑選一個, 一旦你感覺對項目的工作比較熟悉之后,就可以開始從help wanted 標簽中選擇。

#6 提交解決方案

開發了新功能或擴展了測試覆蓋度之后,只需將更改推送到你的代碼倉庫,然后同步到 Github上。推送,綠色合并按鈕將會出現在頂部。此時只需要新建一個 pull request,并等待其他貢獻者批準/請求你的 pull request 中的更改。

此時,你就成為一個 Node.js 的貢獻者了。 恭喜,請繼續提交! 

責任編輯:龐桂玉 來源: Linux中國
相關推薦

2012-03-01 15:55:42

2024-02-01 12:12:01

2024-07-08 08:53:52

2019-10-08 11:48:20

PythonGitHub程序員

2021-06-22 14:53:35

零信任網絡安全網絡攻擊

2010-09-07 14:42:28

2022-08-29 18:15:25

Node.js多線程模型

2016-08-02 10:22:10

JS微軟Node

2019-02-20 13:25:28

無邊界網絡網絡安全網絡攻擊

2011-12-23 13:58:57

node.js

2022-04-06 18:46:35

云戰略云計算云服務

2011-11-18 10:04:46

Citrix私有云

2012-02-02 15:14:29

Node.js

2023-05-22 15:53:06

JavaScrip代碼素材

2024-09-20 15:37:02

2024-01-02 18:01:12

SQLSELECT查詢

2010-08-30 11:28:53

DHCP工作過程

2021-10-21 08:00:00

開發技能技術

2013-11-01 09:34:56

Node.js技術

2015-03-10 10:59:18

Node.js開發指南基礎介紹
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 午夜免费视频 | 色999视频 | 91久久伊人 | 精品1区 | 精品一区二区视频 | 国产激情视频网站 | 久久久久久国产 | 国产7777 | 欧美性极品xxxx做受 | 久久91av| 一区二区三区亚洲 | 性高湖久久久久久久久aaaaa | 日韩av在线免费 | 一区二区精品在线 | 精品一级 | 羞羞午夜 | 欧美男人天堂 | 成人毛片视频在线播放 | 人人擦人人 | 视频在线一区二区 | 少妇一区在线观看 | 国产精品一区二区免费看 | av免费看在线 | 国产午夜影院 | 伊人中文字幕 | 国产99久久 | 免费午夜剧场 | 日韩欧美中文字幕在线观看 | 国产一区2区 | 精品视频久久久 | 91夜色在线观看 | 亚洲综合在线视频 | 国内在线视频 | 欧美久久久久久久久中文字幕 | 久久久久久亚洲精品 | 午夜影院操 | www.狠狠干| 亚洲精品一区二区 | 男女国产网站 | 亚洲免费福利视频 | 啪视频在线|