NEWS
Adapter: cannot find start file
-
Folgende Situation:
In einem TypeScript-basierten Adapter liegen die kompilierten JS-Dateien im Unterorder "build". Die package.json enthält
"main": "build/main.js",
womit ioBroker doch eigentlich die Haupt-Datei finden sollte. Stattdessen steht im Log
host.DomiPC 2017-08-12 20:19:01.744 error startInstance tradfri.0: cannot find start file!
"main": "./build/main.js",
funktioniert auch nicht. Füge ich jetzt aber im Hauptordner eine "main.js" ein mit folgendem Inhalt
require("./build/main.js");
geht alles.
Hat jemand eine Idee, woran das liegen könnte?
-
Folgende Situation:
In einem TypeScript-basierten Adapter liegen die kompilierten JS-Dateien im Unterorder "build". Die package.json enthält
"main": "build/main.js",
womit ioBroker doch eigentlich die Haupt-Datei finden sollte. Stattdessen steht im Log
host.DomiPC 2017-08-12 20:19:01.744 error startInstance tradfri.0: cannot find start file!
"main": "./build/main.js",
funktioniert auch nicht. Füge ich jetzt aber im Hauptordner eine "main.js" ein mit folgendem Inhalt
require("./build/main.js");
geht alles.
Hat jemand eine Idee, woran das liegen könnte? `
Dafür konnte man diese Zeilen ansehen:https://github.com/ioBroker/ioBroker.js … r.js#L1822
und
https://github.com/ioBroker/ioBroker.js ... r.js#L1841
D.h aus "build/main.js" wird ".../iobroker.tradfri/build/main.js" und das sollte gehen.
Hast du auch "iobroker update tradfri" gemacht, nachdem als du "main" geändert hast?
-
Hast du auch "iobroker update tradfri" gemacht, nachdem als du "main" geändert hast? `
Ich meine, ich hätte sogar mal frisch installiert (von Github), aber das werde ich nochmal testen. -
Gerade nochmal ausprobiert:
-
Instanz gelöscht
-
Adapter gelöscht
-
Adapter von Github installiert https://github.com/AlCalzone/ioBroker.tradfri
-
Adapter-Instanz hinzugefügt
Im Log steht jetzt, von welcher Datei der Adapter gestartet wurde:
tradfri.0 2017-08-13 11:03:54.739 info startfile = d:\Programme\ioBroker\node_modules\iobroker.tradfri\main.js
Im Common-Objekt der Instanz gibt es auch keinen Eintrag "main":
! ````
{
"common": {
"name": "tradfri",
"version": "0.1.4",
"title": "IKEA Trådfri",
"platform": "Javascript/Node.js",
"mode": "daemon",
"icon": "tradfri.png",
"extIcon": "https://raw.githubusercontent.com/AlCalzone/ioBroker.tradfri/master/admin/tradfri.png",
"readme": "https://github.com/AlCalzone/ioBroker.tradfri/blob/master/README.md",
"loglevel": "info",
"type": "hardware",
"installedVersion": "0.1.4",
"host": "DomiPC",
"enabled": true,
"messagebox": true,
"news": {
"0.1.0": {
"en": "initial release. Functionality limited to controlling lightbulbs.",
"de": "Initiale Version. Funktionalität ist beschränkt auf das Steuern von Lampen."
},
"0.1.1": {
"en": "Added support for NodeJS 4.X and building the dependencies on Windows systems.",
"de": "Support für NodeJS 4.X hinzugefügt und Buildprobleme auf Windows-Systemen behoben."
},
"0.1.2": {
"en": "Color temperature of lightbulbs is now expressed in terms of 0-100%.",
"de": "Farbtemperatur von Lichtern wird nun als 0-100% ausgedrückt."
},
"0.1.3": {
"en": "Reboot of the adapter without 3rd party libraries",
"de": "Neuauflage des Adapters ohne Dritt-Software"
}
},
"desc": {
"en": "Communicates with IKEA Trådfri Gateway to control devices",
"de": "Kommuniziert mit IKEA Trådfri Gateway um Geräte zu steuern"
},
"keywords": [
"ikea",
"tradfri"
]
},
"native": {
"host": "",
"securityCode": ""
},
"acl": {
"object": 1638,
"owner": "system.user.admin",
"ownerGroup": "system.group.administrator"
},
"_id": "system.adapter.tradfri.0",
"type": "instance"
} -
-
D.h aus "build/main.js" wird "…/iobroker.tradfri/build/main.js" und das sollte gehen. `
Inzwischen wird der Adapter ja aus NPM installiert, das Problem bleibt. Trotz "build/main.js" in der package.json will ioBroker "main.js" starten. Hast du noch ne Idee, was falsch laufen könnte?