我目前正在开发我的第一个更大的node.js应用程序,它应该使用类似插件的依赖项尽可能模块化。 因为我处于开发的早期阶段,并且对节点也很新,这涉及大量的试验和错误,因此我需要重新启动应用程序。因此,开始时间应尽可能短。
在我的情况下,我有这样的文件结构
/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
到目前为止,一切工作正常但我每次对其进行更改时都必须重新安装这些模块(因为这通常是在开始时,我使用脚本/预启动)。 我也尝试使用带有fs核心模块的符号链接,这显然不适用于USB闪存驱动器(至少我无法使其工作)。
现在的问题是这些插件彼此依赖
总而言之,我脑子里有一些问题:
我如何在插件的package.json中引用这些依赖项?
有没有比每次预启动运行npm install更好的解决方案?
另外,我如何确保只安装了项目用户的实例?每次运行npm重复数据删除似乎有点多(显然取决于1的答案。)。
也许我只是想为此复杂化,或者我对node.js和npm应该如何工作不够熟悉。请告诉我是否是这种情况。 如果没有明确描述某些内容,请随时提出。
更新:我目前完全忽略了我的插件之间的依赖关系,并将所有这些依赖关系加载到我的"核心" -Object({users: require('project-users'), post: require('project-post'), forum: require('project-forum')}
) 。
然后我将手动检查模块是否已加载(因此对象键设置)。
这似乎对我来说似乎不是最聪明的解决方案,但目前似乎有效。
唯一让我困扰的是每次更改模块的任何代码时都必须安装本地模块(目前只是在应用启动时重新安装所有代码)。