2016-05-05 16 views
1

Ich baue benutzerdefinierte Knoten für einen Node-RED-App (http://nodered.org/) und jedes als privates NPM-Modul veröffentlicht und legte sie in meine package.json wie folgt aus:Private NPM-Module installiert über package.json ohne ein übergeordnetes Verzeichnis?

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

aber das macht sie installieren innerhalb eines übergeordneten Verzeichnisses wie folgt aus:

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

die Tatsache, dass sie in einem übergeordneten Verzeichnis sind jetzt statt direkt im node_modules Verzeichnis wie sie waren, als ich in github repos als depencen nur ziehen Dadurch wird verhindert, dass Node-RED sie bemerkt und in die App einfügt.

Ich schrieb ein Grunt-Skript, um sie aus dem Elternverzeichnis zu ziehen und direkt in node_modules zu setzen und es als "postinstall" -Skript in package.json zu setzen, aber das muss nach der App geschehen, weil die Node-RED-App nimmt meine benutzerdefinierten Knoten nicht mehr auf.

Haben Sie Ideen, wie Sie die privaten Module ohne ein übergeordnetes Verzeichnis installieren können, so dass sie wie normale (nicht private) NPM-Module aussehen?

So: node_modules/node-red-contrib-didash-output

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

Antwort

3

Es ist nicht, dass sie sind private Module, es ist, dass sie scoped modules sind. Sie sollen sich in einem Verzeichnis mit dem gleichen Namen wie der Bereich befinden, unter dem sie sich befinden. Die einzige Möglichkeit, sie in root zu installieren, besteht darin, den Bereich aus den Paketen zu entfernen. Ich schlage vor, Unterstützung vom Node-RED-Team zu suchen, um zu sehen, ob sie eine Problemumgehung für bereichsspezifische Module haben.

Edit: Ich habe mir erlaubt eine Frage der Öffnung für Sie :)
https://github.com/node-red/node-red/issues/885

+0

Genau - danke @Chev – jordajm

Verwandte Themen