我是Nodejs的新手,但主要来自.net背景。在那里,在一个解决方案中有多个asp.net项目是正常的。比如一个web服务,一个web前端,然后是一个框架和共享逻辑负载。
现在来到nodejs,我计划做一件类似的事情,有一个解决方案,有两个项目,一个是web服务风格的应用程序,另一个是前端应用程序,这两个应用程序都将使用相同的框架,并且在项目中有一些共享逻辑。
当前文件夹结构如下:
|- root
|- source
|- framework
|- web-service
|- web-ui
|- tests
|- build-scripts
|- package.json
现在,在上面的示例中,框架将包含许多共享的东西,如模型、存储库、工厂等。然后web服务将只处理保存和公开数据,然后前端只具有对web服务的调用视图。那么上面的用例可以吗?目前,我只是用jake构建,并用app.js文件输出两个文件夹,然后单独运行,但我只是想知道这是否是一种糟糕的做法。
我认为节点约定只是让framework
、web-service
和web-ui
中的每一个都独立于具有自己的package.json
文件的npm模块,然后对于组合项目,有一个单独的第四个模块,将其他模块作为依赖项列出。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
例如,当您想同时处理uberproject
和framework
时,也可以阅读npm link
(或仅使用符号链接)。