在Visual Studio上開發Node.js程序

在Visual Studio上開發Node.js程序
原文:在Visual Studio上開發Node.js程序

【題外話】

最近準備用Node.js做些東西,于是找找看能否有Visual Studio上的插件以方便開發。結果還真找到了一個,來自微軟的Node.js Tools for Visual Studio(NTVS),雖然現在僅發布了1.0 Alpha版本,但使用起來已經非常方便。而且,其開發團隊與Python Tools for Visual Studio(PTVS)是同一個,而PTVS就是Visual Studio 2013中要創建自帶的Python項目需要安裝的那個程序,所以大可放心的使用NTVS。

?

【系列索引】

  1. 在Visual Studio上開發Node.js程序——NTVS介紹及使用
  2. 在Visual Studio上開發Node.js程序(2)——NTVS遠程調試及發布到Azure

?

【文章索引】

  1. NTVS介紹與安裝
  2. NTVS項目創建和使用
  3. NTVS項目的調試
  4. NTVS項目的包管理

?

【一、NTVS介紹與安裝】

從其官網(http://nodejstools.codeplex.com)上可以找到其介紹,NTVS是一個使Visual Studio成為Node.js集成開發環境的免費、開源的插件,NTVS支持編輯、Intellisense、Profiling、npm包管理器、本地以及遠程調試(Windows、MacOS及Linux),同時其支持Windows Azure網站及云服務。

總之,該有的都有了。如果要安裝NTVS的話,需要VS 2013或2012 Update4的Professional(或Test Professional)、Premium或Ultimate版本,同時需要安裝有Node.js的0.10.20或以上的版本,有了這些準備后,就可以去官網下載安裝包進行安裝了,需要注意的是,VS 2013和2012的安裝包是各自獨立的。

安裝完成后,就會在Visual Studio的JavaScript類型中多出以下的項目類型:

?

【二、NTVS項目創建和使用】

對于Node.js而言,項目類型并不像.NET項目有這么多不同的類型,每種之間的開發環境等還有差異。對于上面的Blank Node.js Console Application和Web Application兩個項目而言,無非就是前者模板的代碼只提供了在控制臺輸出Hello World的代碼;而后者則用Node.js創建了一個Http服務器,并為每個請求都輸出Hello World罷了,即實現了一個簡單的Web應用程序。而Express Application則是使用Node.js上的Express框架+Jade模板引擎+Stylus實現了一個小的Web應用程序。而剩下的第一個項目則是從已有的Node.js項目中創建,后兩個與其他的類似,只不過已經配置好了腳本和配置文件等可以直接部署到Windows Azure中。

項目創建后與Visual Studio的C#等項目沒有太大區別,Intellisense功能也非常強大,敲入require的時候會提示所有的模塊名稱,同時選擇每個模塊的時候會提示這個模塊的作用和說明(如下圖),然后鍵入回車可以直接補齊單引號等等,都非常方便。而對于每個模塊,其所有方法和成員變量也都能自動顯示出來,只不過不像require那樣會顯示說明信息。

?

【三、NTVS項目的調試】

NTVS項目調試的方式與C#一樣,都是F5運行并調試和Ctrl+F5只運行不調試,其會自動運行已安裝的Node程序執行當前項目的代碼。對于Web Application項目并且使用了使用了http模塊的話,還會自動打開瀏覽器訪問指定的端口(可以在項目屬性中關閉)。需要說明的是,對于Node.js項目,有且僅有一個啟動文件(即使用node.exe執行的文件,相當于程序的Main()函數),程序從這個文件的開始執行,默認情況下項目創建后第一個創建的js文件為啟動文件,啟動文件用粗體表示。如果需要設置其他文件為啟動文件,右鍵單擊選擇設置就可以了(如下圖) 。

在調試過程中,與其他項目一樣,都可以設置斷點、單步執行以及監視什么的都是可以用的,同時如果在程序代碼中拋出了異常,在調試過程中也會提示出來(如下圖)。

默認情況下,所有異常都將提示,當然也可以自己選擇哪些異常不提示。可以在提示了異常之后選擇“打開異常設置”,或者選擇“調試”菜單,選擇“異常”,如下圖:

?

【四、NTVS項目的包管理】

NTVS還提供了非常方便的包管理方式,就如同在C#項目中添加引用一樣方便的添加其他包。當然也可以自己使用npm安裝相應的包,然后在項目中使用,雖然調試運行沒有問題,不過這樣是沒有Intellisense提示的。所以,如果項目中需要其他的包,可以右鍵單擊npm,選擇“Manage npm Modules...”(如下圖),在npm包管理器中右側的包名稱中輸入包的名稱,然后點擊下方的本地安裝(為當前項目安裝)就可以了,完成后會在左側出現已安裝的包,然后在項目中require也會出現相應的包名,在使用包的時候也會有方法成員的提示等等。

安裝完包后就會在解決方案管理器的npm下出現相應的包名,與C#項目添加引用類似。同時,與執行npm ls命令一樣,也是可以查看包的依賴關系的(如下圖)。

?

【相關鏈接】

  1. Introducing node.js Tools for Visual Studio:http://www.hanselman.com/blog/IntroducingNodejsToolsForVisualStudio.aspx
  2. [Visual Studio]NTVS - Node.js Tools For Visual Studio Bootcamp:http://www.dotblogs.com.tw/blackie1019/archive/2013/12/27/136557.aspx
  3. Microsoft Joins Forces with RedGate and Clickberry to Offer Node.js Tools for Visual Studio:http://www.infoq.com/news/2013/12/NTVS
posted on 2014-02-23 14:55 NET未來之路 閱讀(...) 評論(...) 編輯 收藏

轉載于:https://www.cnblogs.com/lonelyxmas/p/3561941.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:
http://www.pswp.cn/news/258935.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/258935.shtml
英文地址,請注明出處:http://en.pswp.cn/news/258935.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Oracle ASM 翻譯系列第十一彈:高級知識 Offline or drop?

Offline or drop? 當一個ASM磁盤不可用時,ASM會把它從磁盤組里移除,對嗎?要看情況,通常取決于ASM版本和磁盤組的冗余級別。因為一個external冗余的磁盤組會直接被dismount,所以主要關注normal和high冗余磁盤組的情況。…

net與樹莓派的情緣-安裝與卸載MySql(五)

安裝MySql sudo apt-get install mysql-server 刪除 mysql sudo apt-get autoremove --purge mysql-server-5.0sudo apt-get remove mysql-serversudo apt-get autoremove mysql-serversudo apt-get remove mysql-common //這個很重要上面的其實有一些是多余的。 清理殘留數據 …

mpls工作原理通俗解釋_用這兩種方法向最終用戶解釋NLP模型的工作原理還是不錯的...

點擊上方關注,All in AI中國上周,我看了一個關于“NLP的實踐特性工程”的演講。主要是關于LIME和SHAP在文本分類可解釋性方面是如何工作的。我決定寫一篇關于它們的文章,因為它們很有趣、易于使用,而且視覺上很吸引人。所有的機器…

向往2的年代

1. JDBC 對插入大量數據如何處理? 2. JAVA反射的使用,如何獲取一個java類的某個方法? 3. 數據庫連接池(優化) 4. 分布式事務管理轉載于:https://www.cnblogs.com/dragonflyyi/p/3564843.html

C++ limits頭文件的用法(numeric_limits)

初學C的時候,對這個模板很陌生,不知道它到底是做什么用的,今天拿起《C標準程序庫》,出現了它的討論,所以決定好好研究一番。 1. numeric_limits是什么? (A)《C標準程序庫》&#xff…

三層架構——配置文件

1、配置文件是什么? 配置文件是隨安裝程序一起被安裝到計算機上的文件,里面存放著安裝好的應用程序執行時所須要的參數。 應用程序配置文件是標準的XML文件,XML標記和屬性是區分大寫和小寫的。它能夠按須要更改,開發者可使用配置文…

《嵌入式系統開發之道——菜鳥成長日志與項目經理的私房菜》——02-04項目范圍(Scope)管理...

本節書摘來異步社區《嵌入式系統開發之道——菜鳥成長日志與項目經理的私房菜》一書中的第2章,第2.4節,作者:邱毅凌,更多章節內容可以訪問云棲社區“異步社區”公眾號查看 02-04項目范圍(Scope)管理 嵌入式…

flex(入門)之timer的使用,鍵盤,鼠標的監聽

package {import flash.display.Shape;import flash.display.Sprite;import flash.events.Event;import flash.events.KeyboardEvent;import flash.events.MouseEvent;import flash.events.TimerEvent;import flash.utils.Timer;import mx.controls.Label;//窗體大小&#xff0…

python 線程超時設置_python 條件變量Condition(36)

文章首發微信公眾號,微信搜索:猿說python對于線程與線程之間的交互我們在前面的文章已經介紹了 python 互斥鎖Lock / python事件Event , 今天繼續介紹一種線程交互方式 – 線程條件變量Condition.一.線程條件變量Condition相關函數介紹acquire() — 線程…

MsWord 操作總結

轉自(http://www.cnblogs.com/eye-like/p/4121219.html) Msdn上的word操作api(不過只有英文版,英文差的先閃過) Word2007的API:http://msdn.microsoft.com/en-us/library/bb257531(voffice.12).aspxWord201…

fwrite,fread and fprintf,fscanf的一些使用體會

這周一直在完成一個任務,就是將訓練出的多個model寫成一個model。其中我們使用了c語言的讀寫方法,搞了一星期, 挖了很多坑,最終都鏟平了。下面列舉出若干有用的知識。 1.fwrite,fread VS fprintf,fscanf的區別 fwrite,fread 讀寫…

《第一桶金怎么賺——淘寶開店創業致富一冊通》一一1.4 淘寶開店創業的流程...

本節書摘來自異步社區出版社《第一桶金怎么賺——淘寶開店創業致富一冊通》一書中的第1章,第1.4節,作者:葛存山,更多章節內容可以訪問云棲社區“異步社區”公眾號查看。 1.4 淘寶開店創業的流程 第一桶金怎么賺——淘寶開店創業致…

檢測虛擬機代碼總匯(更新中)

檢測虛擬機代碼 1 004092D0 /. 55 push ebp2 004092D1 |. 8BEC mov ebp,esp3 004092D3 |. 51 push ecx4 004092D4 |. 53 push ebx5 004092D5 |. 68 1D934000 push 0040931D 6 004092DA |. 64:FF35…

兩數之和 python_同一屏幕播放兩個視頻 視頻左右兩個畫面或視頻上下兩個畫面如何制作...

咱們在網上經常可以看到一些視頻畫面是可以在同一屏幕播放兩個視頻,有的是視頻左右兩個畫面或視頻上下兩個畫面這些是如何制作的呢,其實熟悉視頻編輯軟件的網友應該會比較了解這些操作,好嘞,來,現在就讓小編來演示一下…

dlib人臉特征點對齊

前面我們介紹了使用dlib進行人臉檢測&#xff0c;下面我們給出如何使用dlib進行人臉特征點檢測。我們直接貼出代碼。我們的代碼包括如下幾部分功能&#xff1a; 檢測單張圖片檢測一個視頻檢測一個camera 先給出代碼&#xff1a; #include <dlib/image_processing/frontal_…

IOS開發基礎知識--碎片13

1:運行程序報the file couldnt be opened because you dont have permission to view it 解決辦法&#xff1a;項目—>targets->build settings->build options->changed the value of the "Compiler for C/C/Objective-C" to Default Compiler. 2:百度…

《LoadRunner 12七天速成寶典》—第2章2.6節第二個性能測試案例

本節書摘來自異步社區《LoadRunner 12七天速成寶典》一書中的第2章&#xff0c;第2.6節第二個性能測試案例&#xff0c;作者陳霽&#xff0c;更多章節內容可以訪問云棲社區“異步社區”公眾號查看。 2.6 第二個性能測試案例云云&#xff1a;烤魚吃得很爽。 戀戀&#xff1a;就…

MongoDB_1

突然想去看下MongoDB的東西&#xff0c;于是有了這篇文章。其實很早以前就看過一些關于NoSql的文章&#xff0c;還記得當時里面有介紹MongoDB的&#xff0c;多瞅了2眼&#xff0c;并且在Window下安裝了MongoDB的驅動&#xff0c;小玩了會。今天重新翻出來&#xff0c;沒成想在命…

牛頓法與擬牛頓法,SDM方法的一些注記

SDM方法 考慮一般額NLS問題&#xff1a; f(x)minx||h(x)?y||2這里x為優化參數&#xff0c;h為非線性函數&#xff0c;y是已知變量&#xff0c;如下是基于梯度的迭代公式&#xff1a; ΔxαAJTh(h(x)?y)這里α是步長&#xff0c;A是縮放因子&#xff0c;Jh是h在當前參數x下的…

pyqt5從子目錄加載qrc文件_實戰PyQt5: 045-添加資源文件

添加資源文件在使用PyQt進行圖形界面開發的時候不免要用到一些外部資源&#xff0c;比如圖片&#xff0c;qss配置文件等。在前面代碼中&#xff0c;遇到這類問題&#xff0c;我們使用絕對路徑的方式來解決&#xff0c;這種方式&#xff0c;本身有其不方便之處(比如&#xff0c;…