pul*_*hal 10 node.js npm strongloop
问题非常简单:有没有办法从单个nodejs项目向npmjs注册表发布两个不同的NPM模块?
但对于那些你想知道为什么有人甚至想要这样做的人呢?......这个问题背后的动机可能不太明显.所以请允许我解释一下:
我使用的东西类似于一个名为loopback的app-server.我的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等的便利,因为当不仅仅是一个人正在努力它时,它会变得混乱.
有一个类似的问题,我最近发现:https : //github.com/lerna/lerna,这可能对您有用。
从自述文件:
将大型代码库分成单独的独立版本的软件包对于代码共享非常有用。但是,跨许多存储库进行更改很麻烦且难以跟踪,并且跨存储库的测试变得非常复杂。
为了解决这些(以及许多其他)问题,一些项目会将其代码库组织到多包存储库中(有时称为monorepos)。Babel,React,Angular,Ember,Meteor,Jest等项目以及其他许多项目都在单个存储库中开发了所有软件包。
Lerna是一种工具,可以优化使用git和npm管理多包存储库的工作流程。
| 归档时间: |
|
| 查看次数: |
3104 次 |
| 最近记录: |