这个问题非常简单:有没有一种方法可以通过单个nodejs项目将两个不同的NPM模块发布到npmjs注册表中?如何从单个节点项目发布多个NPM模块?
但是对于那些想知道为什么有人甚至想要这样做呢? ......这个问题背后的动机可能不是太明显。因此,请允许我解释:
我使用类似于名为loopback的应用程序服务器。我的nodejs应用程序整齐地分布在客户端,公共和服务器文件夹中。
我经常需要重复使用的模型,我在其他项目
common
文件夹以及。虽然我可以用.npmignore
除去其他的东西发布只是该文件夹作为一个单独的NPM模块:/* /common/utils /common/models/*.js !/common/models/*.json
我无法从我目前
package.json
,这是需要实际运行我的应用程序,从什么也除去杂波已出版。$ npm pack $ tree -L 2 ~/dev/w2/node_modules/warehouse ~/dev/w2/node_modules/warehouse ├── README.md ├── common │ └── models ├── node_modules │ ├── ... │ └── ... └── package.json
就目前情况来看,我过滤掉其他的一切比我common/models
文件夹,但因为我不知道如何包装它或它的包装的一部分,之前来动态调整该文件的package.json ...的npm install
会放下实际上不需要的依赖关系。我不喜欢另外创建一个单独项目的模型,因为这迫使我将它作为依赖项添加到核心项目中,并且活跃的开发项目被拆分为两个项目,它们以前只是一。
npm link
等是一个很好的方法来解决它,但它增加了开发人员安装时的复杂性,当入职新人时,并确保没有人检查错误的东西。
那么有什么方法可以从单个nodejs项目向npmjs注册表发布两个不同的NPM模块吗?或者某种方式使用不同的package.json文件作为单独的出版物,但全部来自一个项目?
更新:我的目标是什么?
要重复使用我的核心项目中的模型和其他项目中的模型,将它们作为NPM模块发布。没有放弃继续开发我的核心项目的便利,因为一个原子实体没有npm link
等,因为当不止一个人在工作时,它会变得杂乱无章。
“尽管我可以只将该文件夹作为独立的NPM模块发布”>“很好”...通过使用.npmignore删除其他内容...“...呵呵?难道你不能将它从应用程序中分离出来,并将它用作应用程序中的模块,如require('common')?也许你可以发布一些简单的代码,如package.json和你的文件结构,以更好地了解你的情况。 – laggingreflex
@laggingreflex - 更新了语言...至于'将它从应用程序中分离出来......正如我在第2项中指出的那样,我问这个问题,所以我不必这么做,我是希望在这里推动一下信封。 – pulkitsinghal
我希望人们可以通过提供降低投票的理由,而不仅仅是让我猜测。 – pulkitsinghal