2013-08-04 54 views
2

我是Nodejs的新手,但主要來自.net背景。在那裏,在一個解決方案中有多個asp.net項目是正常的。如Web服務,Web前端,然後加載框架和共享邏輯。每個Package.json一個節點應用程序

現在來的NodeJS我打算做類似的事情,有一個解決方案 2項目,一個是Web服務風格的應用程序和一個是前端的應用程序,兩者都將使用相同的框架並且在項目中會有一些共享的邏輯。

當前文件夾結構如下:

|- root 
    |- source 
     |- framework 
     |- web-service 
     |- web-ui 
    |- tests 
    |- build-scripts 
|- package.json 

現在在上面的例子框架將包含許多共享的東西,如車型,倉庫,工廠等,然後Web服務將只處理儲蓄和公開數據,那麼前端只需調用Web服務就可以看到一個視圖。那麼上面的用例可以嗎?因爲目前我只是使用jake構建並輸出2個帶有app.js文件的文件夾,然後分別運行,但只是想知道這是否是不好的做法。

回答

2

我覺得節點約定是隻是爲了讓每個frameworkweb-service,並web-ui獨立的NPM模塊,用自己的package.json文件,然後對合並項目有一個單獨的第四模塊,列出每個其它模塊作爲一個依賴。 npm支持各種各樣的URL模式,包括使用標籤發佈的git(或github)存儲庫URL。

所以我建議:

projects/ 
    framework/ 
    package.json 
    web-service 
    package.json //depends on framework 
    web-ui/ 
    package.json //depends on framework 
    uberproject/ 
    package.json //depends on web-service, web-ui, and maybe framework as well 
    //Use URLs like git+ssh://git.example.com/projects/framework.git#v0.9.4 

npm link又讀了(或者只是使用符號連接)時,要在兩個uberprojectframework同時工作,例如。

+0

我閱讀了有關鏈接命令的內容,但是我在Windows環境下工作,顯然由於缺少符號鏈接而無法在Windows中工作。不過,我會更多地關注上面提到的結構,因爲每個項目都會描述它自己的依賴關係,這是很有意義的。在這種情況下對我來說唯一有點問題是我的實際文件是用typescript編寫的,而且幾乎沒有任何運行構建腳本來處理和打包它們。所以在這個例子中,所有的項目都是同時建立的,但我想這可能會改變。 – Grofit

+0

是的,你可能最終不得不使用'cd web-ui'等工作流程,建立它,然後'cd uberproject'和'npm install ../ web-ui'。這不是一個乾淨的npm鏈接,但它可能工作。要考慮的另一件事是組織uberproject與git子模塊的依賴關係,而不是真正的npm模塊。 –

相關問題