node.js管理频繁更改的本地依赖项

时间:2016-02-15 18:07:16

标签: node.js npm dependencies local modularity

我目前正在开发我的第一个更大的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闪存驱动器(至少我无法使其工作)。

现在的问题是这些插件彼此依赖

  • 项目论坛依赖于项目发布和项目用户
  • project-post取决于项目用户

总而言之,我脑子里有一些问题:

  1. 我如何在插件的package.json中引用这些依赖项?

  2. 有没有比每次预启动运行npm install更好的解决方案?

  3. 另外,我如何确保只安装了项目用户的实例?每次运行npm重复数据删除似乎有点多(显然取决于1的答案。)。

  4. 也许我只是想为此复杂化,或者我对node.js和npm应该如何工作不够熟悉。请告诉我是否是这种情况。 如果没有明确描述某些内容,请随时提出。

    更新:我目前完全忽略了我的插件之间的依赖关系,并将所有这些依赖关系加载到我的"核心" -Object({users: require('project-users'), post: require('project-post'), forum: require('project-forum')}) 。 然后我将手动检查模块是否已加载(因此对象键设置)。 这似乎对我来说似乎不是最聪明的解决方案,但目前似乎有效。

    唯一让我困扰的是每次更改模块的任何代码时都必须安装本地模块(目前只是在应用启动时重新安装所有代码)。

1 个答案:

答案 0 :(得分:-5)

只要有任何更改,您就可以使用nodemon重启服务器

npm install -g nodemon

http://nodemon.io/