Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Entwicklung
  4. [gelöst] ts, src unter build durch adapter-config.d.ts

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.2k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

[gelöst] ts, src unter build durch adapter-config.d.ts

Geplant Angeheftet Gesperrt Verschoben Entwicklung
typescriptadapter-config.jsonadaptersrcbuild
7 Beiträge 3 Kommentatoren 698 Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • greyhoundG Offline
    greyhoundG Offline
    greyhound
    schrieb am zuletzt editiert von greyhound
    #1

    Hallo ts-Experten,
    ein aus meiner Sicht nerviges Detail ist die Erzeugung des src-Verzeichnisses unterhalb von build (./build/src) wenn
    a) es eine Datei adapter-config.d.ts unterhalb von src (Standard unterhalb von src/lib) gibt
    und
    b) sich die io-package.json im root des Projektes befindet.

    Verschiebe ich die io-package.json ins ./src, dann bekomme ich auch die gewünschte build-Verzeichnisstruktur ohne "src".
    Die adapter-config.d.ts kann man ja schwerlich weglassen.

    Aber warum ändert das Vorhandensein der adapter-config.d.ts die build-Verzeichnisstruktur?

    Mit dem Verschieben der io-package.json könnte ich ganz gut leben, aber leider der js-controller nicht, der sucht leider nicht, sondern geht davon aus, dass sie im root-Verzeichnis des Adapters liegt und damit schlägt die Installation fehl.

    Meine Lösung sieht jetzt wie folgt aus;
    a) die echte io-package.json im root-Verzeichnis des Adapters wie gehabt
    b) in ./src eine dummy - io-package.json

    {
        "native": {}
    }
    

    c) die adapter-config.d.ts in ./src/lib verweist auf die dummy - io-package.json in ./src

    // This file extends the AdapterConfig type from "@types/iobroker"
    // using the actual properties present in io-package.json
    // in order to provide typings for adapter.config properties
    
    import { native } from '../io-package.json';
    
    type _AdapterConfig = Partial<typeof native>;
    
    // Augment the globally declared type ioBroker.AdapterConfig
    declare global {
    	namespace ioBroker {
    		// tslint-disable-next-line:no-empty-interface
    		interface AdapterConfig extends _AdapterConfig {
    			// Do not enter anything here!
    		}
    
    	}
    }
    

    Damit entfällt das lästige Umbauen des Build-Verzeichnisses. Aber vielleicht findet ja auch noch jemand die Ursache, warum die adapter-config.d.ts die build-Verzeichnisstruktur ändert.

    ioBroker auf ODROID-XU4 / Influx u. a. auf FUJITSU D3400-B, Celeron G3900, 16 GB RAM / CCU2 / Nuki

    UncleSamU AlCalzoneA 2 Antworten Letzte Antwort
    0
    • greyhoundG greyhound

      Hallo ts-Experten,
      ein aus meiner Sicht nerviges Detail ist die Erzeugung des src-Verzeichnisses unterhalb von build (./build/src) wenn
      a) es eine Datei adapter-config.d.ts unterhalb von src (Standard unterhalb von src/lib) gibt
      und
      b) sich die io-package.json im root des Projektes befindet.

      Verschiebe ich die io-package.json ins ./src, dann bekomme ich auch die gewünschte build-Verzeichnisstruktur ohne "src".
      Die adapter-config.d.ts kann man ja schwerlich weglassen.

      Aber warum ändert das Vorhandensein der adapter-config.d.ts die build-Verzeichnisstruktur?

      Mit dem Verschieben der io-package.json könnte ich ganz gut leben, aber leider der js-controller nicht, der sucht leider nicht, sondern geht davon aus, dass sie im root-Verzeichnis des Adapters liegt und damit schlägt die Installation fehl.

      Meine Lösung sieht jetzt wie folgt aus;
      a) die echte io-package.json im root-Verzeichnis des Adapters wie gehabt
      b) in ./src eine dummy - io-package.json

      {
          "native": {}
      }
      

      c) die adapter-config.d.ts in ./src/lib verweist auf die dummy - io-package.json in ./src

      // This file extends the AdapterConfig type from "@types/iobroker"
      // using the actual properties present in io-package.json
      // in order to provide typings for adapter.config properties
      
      import { native } from '../io-package.json';
      
      type _AdapterConfig = Partial<typeof native>;
      
      // Augment the globally declared type ioBroker.AdapterConfig
      declare global {
      	namespace ioBroker {
      		// tslint-disable-next-line:no-empty-interface
      		interface AdapterConfig extends _AdapterConfig {
      			// Do not enter anything here!
      		}
      
      	}
      }
      

      Damit entfällt das lästige Umbauen des Build-Verzeichnisses. Aber vielleicht findet ja auch noch jemand die Ursache, warum die adapter-config.d.ts die build-Verzeichnisstruktur ändert.

      UncleSamU Offline
      UncleSamU Offline
      UncleSam
      Developer
      schrieb am zuletzt editiert von
      #2

      @greyhound Hast du das Projekt mit der aktuellsten Version des Adapter Creators erstellt? Wenn nicht, würde ich das mal machen, denn grundsätzlich funktioniert das bei mir in mehreren Adaptern problemlos.

      Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
      ♡-lichen Dank an meine Sponsoren

      greyhoundG 1 Antwort Letzte Antwort
      0
      • greyhoundG greyhound

        Hallo ts-Experten,
        ein aus meiner Sicht nerviges Detail ist die Erzeugung des src-Verzeichnisses unterhalb von build (./build/src) wenn
        a) es eine Datei adapter-config.d.ts unterhalb von src (Standard unterhalb von src/lib) gibt
        und
        b) sich die io-package.json im root des Projektes befindet.

        Verschiebe ich die io-package.json ins ./src, dann bekomme ich auch die gewünschte build-Verzeichnisstruktur ohne "src".
        Die adapter-config.d.ts kann man ja schwerlich weglassen.

        Aber warum ändert das Vorhandensein der adapter-config.d.ts die build-Verzeichnisstruktur?

        Mit dem Verschieben der io-package.json könnte ich ganz gut leben, aber leider der js-controller nicht, der sucht leider nicht, sondern geht davon aus, dass sie im root-Verzeichnis des Adapters liegt und damit schlägt die Installation fehl.

        Meine Lösung sieht jetzt wie folgt aus;
        a) die echte io-package.json im root-Verzeichnis des Adapters wie gehabt
        b) in ./src eine dummy - io-package.json

        {
            "native": {}
        }
        

        c) die adapter-config.d.ts in ./src/lib verweist auf die dummy - io-package.json in ./src

        // This file extends the AdapterConfig type from "@types/iobroker"
        // using the actual properties present in io-package.json
        // in order to provide typings for adapter.config properties
        
        import { native } from '../io-package.json';
        
        type _AdapterConfig = Partial<typeof native>;
        
        // Augment the globally declared type ioBroker.AdapterConfig
        declare global {
        	namespace ioBroker {
        		// tslint-disable-next-line:no-empty-interface
        		interface AdapterConfig extends _AdapterConfig {
        			// Do not enter anything here!
        		}
        
        	}
        }
        

        Damit entfällt das lästige Umbauen des Build-Verzeichnisses. Aber vielleicht findet ja auch noch jemand die Ursache, warum die adapter-config.d.ts die build-Verzeichnisstruktur ändert.

        AlCalzoneA Offline
        AlCalzoneA Offline
        AlCalzone
        Developer
        schrieb am zuletzt editiert von
        #3

        @greyhound sagte in ts, src unter build durch adapter-config.d.ts, workarround:

        Aber vielleicht findet ja auch noch jemand die Ursache

        Ja, das liegt daran, dass die io-package.json von außerhalb src referenziert wird. Aber wo hast du das in einem TS-Adapter her? Ich habe das bewusst nur in JS so "magisch" gelöst, weil da eben nicht kompiliert wird.
        Unter TS musst du leider die adapter-config.d.ts von Hand mit den Config-Optionen versehen:
        https://github.com/ioBroker/ioBroker.template/blob/master/TypeScript/src/lib/adapter-config.d.ts

        Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

        1 Antwort Letzte Antwort
        1
        • UncleSamU UncleSam

          @greyhound Hast du das Projekt mit der aktuellsten Version des Adapter Creators erstellt? Wenn nicht, würde ich das mal machen, denn grundsätzlich funktioniert das bei mir in mehreren Adaptern problemlos.

          greyhoundG Offline
          greyhoundG Offline
          greyhound
          schrieb am zuletzt editiert von
          #4

          @UncleSam
          Hi, nein, Basis war ein Klon von fb-presence-Adapter. Und bei einem auch einige Monate (oder fast ein Jahr) alten Adapter hatte ich das selbe Problem. Muss schauen wie ich Zeit finde, meinen mit der neuen Creator-Version zu vergleichen.
          Hatte mich glaube dann auch beim tradfri-Adapter gewundert, wie da mit regex gezaubert wird.
          Schien also so, als ob ich nicht allein bin.

          ioBroker auf ODROID-XU4 / Influx u. a. auf FUJITSU D3400-B, Celeron G3900, 16 GB RAM / CCU2 / Nuki

          UncleSamU AlCalzoneA 2 Antworten Letzte Antwort
          0
          • greyhoundG greyhound

            @UncleSam
            Hi, nein, Basis war ein Klon von fb-presence-Adapter. Und bei einem auch einige Monate (oder fast ein Jahr) alten Adapter hatte ich das selbe Problem. Muss schauen wie ich Zeit finde, meinen mit der neuen Creator-Version zu vergleichen.
            Hatte mich glaube dann auch beim tradfri-Adapter gewundert, wie da mit regex gezaubert wird.
            Schien also so, als ob ich nicht allein bin.

            UncleSamU Offline
            UncleSamU Offline
            UncleSam
            Developer
            schrieb am zuletzt editiert von
            #5

            @greyhound sagte in ts, src unter build durch adapter-config.d.ts, workarround:

            Muss schauen wie ich Zeit finde, meinen mit der neuen Creator-Version zu vergleichen.

            Im Creator hat sich viel getan, da lohnt es sich, den Adapter mal "leer" neu zu erstellen und dann von Hand deinen Code rein zu nehmen (oder halt als Diff, aber das ist auch sehr aufwändig und dazu noch fehleranfällig).

            Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
            ♡-lichen Dank an meine Sponsoren

            1 Antwort Letzte Antwort
            0
            • greyhoundG greyhound

              @UncleSam
              Hi, nein, Basis war ein Klon von fb-presence-Adapter. Und bei einem auch einige Monate (oder fast ein Jahr) alten Adapter hatte ich das selbe Problem. Muss schauen wie ich Zeit finde, meinen mit der neuen Creator-Version zu vergleichen.
              Hatte mich glaube dann auch beim tradfri-Adapter gewundert, wie da mit regex gezaubert wird.
              Schien also so, als ob ich nicht allein bin.

              AlCalzoneA Offline
              AlCalzoneA Offline
              AlCalzone
              Developer
              schrieb am zuletzt editiert von
              #6

              @greyhound sagte in ts, src unter build durch adapter-config.d.ts, workarround:

              Hatte mich glaube dann auch beim tradfri-Adapter gewundert, wie da mit regex gezaubert wird.

              Das waren meine traurigen Versuche, diese Limitation auszuhebeln. Danach hab ich mich entschieden, dass die zusätzliche Komplexität den minimalen Benefit nicht wert ist.

              Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

              1 Antwort Letzte Antwort
              0
              • greyhoundG Offline
                greyhoundG Offline
                greyhound
                schrieb am zuletzt editiert von
                #7

                Habe meinen ts Adapter aktualisiert, so viel war es dann doch nicht, werde ihn die Tage veröffentlichen, nichts besonderes nur ein weiterer TR-064-Adapter für die Fritz!Box

                ioBroker auf ODROID-XU4 / Influx u. a. auf FUJITSU D3400-B, Celeron G3900, 16 GB RAM / CCU2 / Nuki

                1 Antwort Letzte Antwort
                0
                Antworten
                • In einem neuen Thema antworten
                Anmelden zum Antworten
                • Älteste zuerst
                • Neuste zuerst
                • Meiste Stimmen


                Support us

                ioBroker
                Community Adapters
                Donate

                378

                Online

                32.5k

                Benutzer

                81.7k

                Themen

                1.3m

                Beiträge
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                ioBroker Community 2014-2025
                logo
                • Anmelden

                • Du hast noch kein Konto? Registrieren

                • Anmelden oder registrieren, um zu suchen
                • Erster Beitrag
                  Letzter Beitrag
                0
                • Home
                • Aktuell
                • Tags
                • Ungelesen 0
                • Kategorien
                • Unreplied
                • Beliebt
                • GitHub
                • Docu
                • Hilfe