私人NPM模块通过package.json安装,没有父目录?

我为Node-RED应用程序( http://nodered.org/ )构build自定义节点,并将其作为私有NPM模块发布,并将它们放在我的package.json中,如下所示:

"@di-dash/node-red-contrib-didash-output": "0.0.1",

但是这使得它们像这样安装在父目录中:

/node_modules/@di-dash/node-red-contrib-didash-output

事实上,他们现在在一个父目录,而不是直接在node_modules目录中,就像当我只是拉动github仓库时一样,因为dependencyncies阻止Node-RED注意到它们,并将它们包括在应用程序中。

我写了一个grunt脚本,将它们从父目录中取出,并将它们直接放到node_modules中,并将其作为package.json中的“postinstall”脚本,但是必须在应用程序启动后才会发生,因为Node-RED应用程序没有select我的自定义节点了。

任何想法如何使私人模块安装没有父目录,以便他们就像普通(非私人)NPM模块?

像这样: node_modules/node-red-contrib-didash-output

而不是: /node_modules/@di-dash/node-red-contrib-didash-output

这不是他们是私人模块,而是他们是范围的模块 。 他们应该是在一个目录名称与他们所在的范围相同。 使它们在根目录下安装的唯一方法是从包中删除范围。 我build议从Node-RED团队寻求支持,看看他们是否有范围模块的解决方法。

编辑:我冒昧地为你开启一个问题:)
https://github.com/node-red/node-red/issues/885