我有一些创建express.js端点的包。其中一些包具有使用这些API的相应客户端代码。对于服务器,依赖于此客户端代码似乎是有意义的,因为服务器将提供此代码,以便客户端与其公开的端点进行交互。
但是,我的快速代码是从单个公共目录提供这些文件。但是,npm会将每个包安装在不同的目录中。即使在较新版本的节点中,这个目录结构也可能是平坦的。似乎编写快速相关代码来定位要提供的所有不同文件会过于复杂。
我正在阅读npm and front-end packaging,听起来像npm 想要能够处理这种情况。在撰写本文时,已经确定了一些问题 - 确定的第一个问题是" node_modules没有像前端软件包需要的那样排列"这正是我遇到的问题。这篇文章似乎没有提出任何解决方案,但正如大约三年前写的那样,从那时起可能在这方面取得了进展。
现在这样做的方法是什么?目前作为一种解决方法,我有自己的安装程序,但这意味着npm对我的客户端代码一无所知,我必须手动安装正确的软件包。
更新: 这是一个简化示例,显示了要提供的包和文件:
server-168: defines services used by this particular server
\- server-168.js
server-core: defines plug-in architecture used by other services and provides default file serving endpoint
\- server-core.js
database-service: exposes database endpoint
\- database-service.js
database-frontend: contains UI for manipulating database in browser
\- database.js
image-service: exposes image manipulation endpoint
\- image-service.js
image-frontend: contains UI for manipulating images
\+- image.js
|
\- image.css
安装后,这种情况下的files目录必须如下所示:
files/
image.js
image.css
database.js
目前我正在使用npm install git+ssh://.../server-168.git
来安装服务器,然后使用自定义安装程序来安装文件目录中的内容。