我目前正在开发我的第一个更大的node.js应用程序,它应该使用类似插件的依赖项尽可能模块化地工作。
因为我正处于开发的早期阶段,而且对node还很陌生,这涉及到很多尝试和错误,因此我需要重新启动应用程序。因此,启动时间应尽可能短。
在我的例子中,我有一个这样的文件结构
/lib - core functionality
/plugins - local modules, will be moved to external packages later on
/plugins/project-users
/plugins/project-post
/plugins/project-forum
因为我想将这些插件移动到他们自己的包中,并且在工作开始后将它们包含在require('project-users')中,所以我必须正确安装这些插件。
npm install ./plugins/project-users
npm install ./plugins/project-post
npm install ./plugins/project-forum
到目前为止,一切正常,但每次对这些模块进行更改时,我都必须重新安装它们(因为这通常是在开始时,我使用的是scripts/prestart)。
我还尝试使用符号链接与fs核心模块,这似乎不工作的usb闪存驱动器(至少我不能让它工作)。
现在的问题是这些插件相互依赖
项目论坛取决于项目帖子和项目用户
项目发布取决于项目用户
综上所述,我想到了一些问题:
如何在插件的package.json中引用这些依赖项?
有没有比运行npm install every prestart更好的解决方案?
另外,我如何确保安装了项目用户的实例?每次运行npm重复数据消除似乎有点过分(显然取决于1的答案)。
也许我只是想把这个复杂化,或者我对node.js和npm应该如何工作还不够熟悉。如果是这样的话,请告诉我。
如果有些东西描述不清楚,可以问。
更新:我目前完全忽略了插件之间的依赖关系,并将它们加载到我的“core”对象(
{users: require('project-users'), post: require('project-post'), forum: require('project-forum')}
)。然后,我将不得不手动检查是否加载了模块(因此设置了对象键)。
对我来说,这似乎仍然不是最明智的解决方案,但目前看来,这似乎是可行的。
唯一真正困扰我的是,每次我更改模块的任何代码时都必须安装本地模块(目前只是在app start重新安装所有模块)。
最佳答案
你可以使用nodemon在任何更改后立即重新启动服务器
npm install -g nodemon
http://nodemon.io/
关于node.js - node.js管理频繁更改的本地依赖项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35416149/