【編者按】本文做者爲 Szabolcs Kurdi,主要經過生動的實例介紹如何在 Windows 10 中搭建 Node.js 環境。文章系國內 ITOM 管理平臺 OneAPM 編譯呈現。html
在本文中,筆者將展現如何在 Windows 10 中搭建 Node.js 環境。而且,做爲檢驗,筆者會在新搭建的環境中運行本身正在努力的一個項目(該項目依賴於 koa, pg, amqplib 等模塊)。node
請注意:本文的首要目的是爲 Node.js 項目搭建開發者環境,而非運行某個項目。筆者隨後會介紹如何部署至 Azure 平臺,但這已經超出了本文的討論範圍。python
##準備工做 在 Windows 中用 Node.js 進行開發一度是很是麻煩的事,可是如今這一情況相較於一兩年前有了較大改善。這也是爲何,在選擇 Windows 7 仍是 Windows 10 做爲本文主題之時,咱們猶豫不決的緣由。git
儘管 Windows 7 仍舊很是流行,並且 Windows 10 有一些很差的風聞(因爲評價標準及數據收集範圍的不一樣),咱們仍是決定選擇 Windows 10 爲試驗對象,由於確保最新的操做系統對保證應用安全相當重要。github
在本文中,咱們將盡量使用最新的工具與應用(並使用其64位版本)。筆者知道在公司環境中這可能沒法保證,但保持工具的前衛是很重要的。web
本文全部的安裝都會在本機中進行。我不建議在 Cygwin 中搭建 Node 環境。此外,儘管 VirtualBox 是免費的,當我在 Windows 機器上運行 Linux 虛擬機時,卻老是問題不斷。shell
##步驟1:安裝 Git 首先,安裝 Git。使用默認設置,這些設置是至關合理的。數據庫
筆者一般會在主目錄下建立一個項目文件夾。設置時,右鍵單擊該文件夾,選擇 「Git bash here」,再經過git --version
指令檢查 git 版本。npm
這是很好的 bash 環境,你能夠建立一個 .bash_profile
,在你打開 bash 窗口時執行。此外,這不是 cmd.exe
窗口,你能夠查看一些選項(單擊左上角的圖標)。你能夠經過鼠標中鍵將文本拷貝至窗口(就像在建立的 Linux 終端同樣)。json
##步驟2:在 Windows 10 上安裝 Node.js 下載並安裝 Node.js。使用其 LTS(長期支持)版本。
筆者不建議並排安裝多個版本,由於 Node 版本管理器並未正式支持 Windows ——不過,你仍有一些備選方案,好比 nvm-windows 或 nodist。其實,即使是在其餘系統中,全局安裝不一樣版本的 node 工具仍然像是在自找麻煩。
##步驟3:更新 npm npm 伴隨着 Node 而來。成功安裝 Node.js 以後,包管理器 npm 也應當可用了。
打開一個 bash shell,經過 npm --version
檢查版本號。若是 npm 是 2.x 版本,則應該升級到版本3,這能解決許多問題(對咱們而言,最重要的是其處理對等依賴的方式)。在開始菜單中搜索 Power Shell,以管理員身份運行,並遵循如下步驟。
##步驟4:安裝 Visual Studio 與 Python Node 包一般會依賴帶有本地代碼的包,所以你必須安裝 Visual Studio。
Node-gpy 是圍繞 Python GYP (Generate Your Projects)的一款包裝程序,該工具能爲 Gcc, XCode 以及 Visual Studio 生成項目文件。因爲 Windows 開發其實是經過 Visual Studio 進行的,咱們會用其支持 Visual Studio。
###安裝 Python(2.x 版本) 如你所見,你會用到 Python,所以下載其64位的 2.x 版本並安裝之。你能夠遵循默認設置,並選擇 「Add to path (添加至路徑)」選項。這會將 Python 二進制添加到全局路徑,意味着最終你要先登出再登錄。
下一步,進入環境變量設置(在系統,高級設置中),並將 GYP_MSVS_VERSION=2015
添加到全局變量中,由於下一步是 Visual Studio 2015 的安裝。
###安裝 Visual Studio (VS2015) 不一樣於2012以前的版本,VS2015 能與64位的 Node.js 和諧工做。很快,咱們將學習 Node-gyp 針對 Windows 10 的教程。
除非你的機器上已經安裝了完整的 VS,請下載 Visual Studio 2015 社區版,選擇自定義安裝並選定徹底的 Visual C++ 分支(不帶 XP 支持),此外,在工具中選擇 Windows SDKs。若是在安裝過程當中出現任何差錯,你能夠點擊程序與特性(Programs and Features),選擇 VS2015,進行更改與修正。
在 gyp 的安裝手冊中還提到了 Windows 7 SDKs,可是咱們在前面已經安裝了 Win 8 SDKs,因此但願不會用到 Win 7 SDKs。
##步驟5:安裝包依賴 目前,筆者正在開發 Trace 中的告警微服務,因此我會經過 npm -i
指令安裝所需的包依賴。獲得的結果以下圖所示:
Fsevents 是可選依賴,且只能用於 OSX 系統;這只是一個警告——其他模塊並沒有問題。
該微服務用到了 Postgres 與 RabbitMQ,所以筆者也安裝了兩者(連同 Erlang)。此處,與 OSX brew(與 apt、Chocolatey 類似的一款包管理器)以及 rocket(一款服務管理器)配置相比,惟一的不一樣是我必須手動在 15672 端口啓用 web 管理員。
在數據庫端,筆者添加了默認用戶,並建立了一個數據庫。不過,這些均可以在 PgAdmin 客戶端輕鬆完成。
##步驟6:處理環境變量 一般,Node.js 項目都高度依賴環境變量。
從上面的項目截圖中能夠看到,IS_INTERACTIVE 是一個環境變量(env var),這在 Linux 與 OSX 系統中很容易定義,可是在 Windows 中則有一點不一樣。
在 package.json 的腳本部分,你可使用安裝在本地的 node 模塊。筆者建議你儘可能避免經過 npm -g
指令全局地安裝包。
此外,筆者也不建議在 Windows (更精確地說,在跨平臺項目中)的腳本部分直接添加環境變量,其實,咱們有別的選擇。
Npm 會直接將這些指令傳遞至 OS,在本例中,傳遞到 NT 命令解釋器(cmd.exe)。此處,最快捷的解決辦法是將腳本行拷貝到咱們的 bash 窗口,並運行之。可是,理所固然,這不是長遠的解決辦法。最新發布的 Windows bash shell 支持(目前仍處於測試階段)極可能會解決此問題。
最清楚的解決方法是對每一腳本行使用一條指令(如你所見,咱們的 npm run lint
指令運行良好)。
任何依賴於 flashvars (臨時環境變量)或試圖同時完成許多操做的指令,都應該寫在某個 /scripts 文件夾下,做爲 Node 可執行的 JavaScript 文件。
不要使用 bash 腳本,cmd 沒法處理這些腳本。Cmd.ex 支持 &&
,所以兩三條指令還行,將一整個 shell 腳本寫作一行就不行了(尤爲不該帶有 bash 語言特性)。
爲了支持腳本,這是可行的。可是爲了運行咱們的應用,就須要許多環境變量。
在 RisingStack,咱們在開發階段會使用 nodemon(不過,有些人或許會用 pm2)。Nodemon 是一款文件監視器,會在開始時根據你定義的環境變量,解析 nodemon.json 文件。
筆者一般會在 .gitignore_global 文件(在主目錄下,記得用 git config --global core.excludesfile ~/.gitignore_global
進行初始化)中加入 nodemon.*
,這樣一來,個人項目中即可以有多個 nodemon json 模板。
儘管不是很是優雅的解決方案,筆者一般會全局地安裝 nodemon。有時,在開發中直接手動啓動 nodemon,而不是經過適當的運行腳本,更爲簡單。
有了上面的 json,如今能夠啓動個人微服務了,以下所示:
固然,因爲筆者不肯監視文件變化,nodemon 可能不是最佳的僅用於運行腳本的解決方案。對於那些狀況,筆者一般會將 nodemon.json 文件轉化爲 nodemon.sh,將每個環境變量導出至後者。請注意:你能夠根據本身的喜愛隨意命名該文件,可是不要忘記將其添加至忽略文件 ——不慎將該文件推入資源庫會形成很大的麻煩:
export NODE_ENV="development" export PORT=3060 export AMQP_URI="amqp://localhost:5672/" export EMAIL_SENDER_NAME="Developer" #etc.
以後,筆者能夠在命令行中以其爲源文件(源引nodemon.dev.sh)——這樣作是爲了咱們當前使用的 MinGW bash,可是,若是將其轉化爲傳統的 bat 文件,會更爲簡單。因爲咱們的數據庫設置須要幾個環境變量,而筆者不肯監視之,這是最快也最粗暴的在本地運行的方法。在雲供應商環境中,筆者會更加合理地設置環境變量。
到此爲止,項目順利運行了,就如同在 OSX 或 Linux 系統中同樣。
以上即爲咱們簡短的在 Windows 10 中配置 Node.js 的教程。npm 中的一些模塊可能不支持 Windows,可是這一狀況正在好轉。Windows 擁有許多美觀友好的 GUI 工具,Visual Studio 也是很強大的武器。若是你的團隊願意承擔額外的開銷,這或許是一個可行的選擇。
OneAPM 能幫助您輕鬆鎖定 Node.js 應用性能瓶頸,經過強大的 Trace 記錄逐層分析,直至鎖定行級問題代碼。以用戶角度展現系統響應速度,以地域和瀏覽器維度統計用戶使用狀況。想閱讀更多技術文章,請訪問 OneAPM 官方博客。
本文轉自 OneAPM 官方博客
原文地址:https://blog.risingstack.com/node-js-windows-10-tutorial/