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. Skripten / Logik
  4. JavaScript
  5. [Frage] Typescript Module Verwalten

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    508

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.7k

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

[Frage] Typescript Module Verwalten

Geplant Angeheftet Gesperrt Verschoben JavaScript
javascript
3 Beiträge 2 Kommentatoren 317 Aufrufe 2 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.
  • KobiK Offline
    KobiK Offline
    Kobi
    schrieb am zuletzt editiert von
    #1

    Grüezi Community

    Gerne möchte ich meine mittels typescript erstellten Skripte in Themen gegliederte Module organisieren. Bei meiner eingesetzten Hardware handelt es sich um den Raspberry Pi 4 mit folgenden Software Komponenten:

    Platform Betriebssystem: linux
    Architektur: arm
    CPUs: 4
    Geschwindigkeit: 1500 MHz
    Modell:ARMv7 Processor rev 3 (v7l)
    RAM:3.7 GB
    System-Betriebszeit: 11 T. 00:00:00
    Node.js: v14.19.0
    NPM: 6.14.16
    Datenträgergröße: 28.2 GB
    Festplatte frei: 22.0 GB
    Adapter-Anzahl: 396
    Betriebszeit: 2 T. 06:09:26
    Aktive Instanzen: 20
    Pfad: /opt/iobroker/
    ts compiler version: 4.5.5

    Damit ich besser verstehen kann, wo und wie das iobroker JS runtime Environment spezifische TS-Module speichert, sodass der TS-Compiler Code-Modifikationen erkennt und nur geänderte Module neu kompiliert, habe ich folgende zwei Bespiel TS-Module erstellt:

    //TS-Module Test0:

    export class MyClass {
    constructor(val1: number, val2: number) {
    this.v1 = val1;
    this.v2 = val2;
    }
    public Get(): number {
    return this.v1 * this.v2;
    }
    private v1: number;
    private v2: number;
    }

    //TS-Module Test1:

    moduleResolution: 'node' // option to specify the module resolution strategy
    import { MyClass } from './Test0';
    const obj = new MyClass(2, 3);
    console.error(obj.Get());

    Die beiden TS-Module befinden sich unter dem Standard Ordner common vom iobroker Editor und der Compiler meldet, dass er das TS-Module Test0 nicht finden kann.

    Könnte mir jemand mit typescript Erfahrung bitte folgende Fragen beantworten?

      1. Wo befinden sich die beiden TS-Module Test0 bzw. Test1 physikalisch?
      1. Muss ich dem TS-Compiler den SRC-Pfad explizit bekannt geben und falls ja, wo befindet sich eine entsprechende tsconfig.json-Datei?
      1. Muss ich dem TS-Compiler spezifische Optionen bekanntgeben, oder wurden diese bereits durch die TS-Projekt Erstellung automatisch erstellt?
      1. Wo befinden sich die Build Dateien des Compilers auf dem System?
      1. Ist für das iobroker runtime environment ein für node v14 passendes Paket zu installieren, damit eine TS-Modul Verwaltung im iobroker Editor überhaupt möglich wird?
        (npm install --save-dev @tsconfig/node14)

    Vielleicht hat jemand mit TS-Erfahrung, die Gnade mich meiner Unwissenheit zu entledigen?

    Herzlichen Dank
    Kobi

    AlCalzoneA 1 Antwort Letzte Antwort
    0
    • KobiK Kobi

      Grüezi Community

      Gerne möchte ich meine mittels typescript erstellten Skripte in Themen gegliederte Module organisieren. Bei meiner eingesetzten Hardware handelt es sich um den Raspberry Pi 4 mit folgenden Software Komponenten:

      Platform Betriebssystem: linux
      Architektur: arm
      CPUs: 4
      Geschwindigkeit: 1500 MHz
      Modell:ARMv7 Processor rev 3 (v7l)
      RAM:3.7 GB
      System-Betriebszeit: 11 T. 00:00:00
      Node.js: v14.19.0
      NPM: 6.14.16
      Datenträgergröße: 28.2 GB
      Festplatte frei: 22.0 GB
      Adapter-Anzahl: 396
      Betriebszeit: 2 T. 06:09:26
      Aktive Instanzen: 20
      Pfad: /opt/iobroker/
      ts compiler version: 4.5.5

      Damit ich besser verstehen kann, wo und wie das iobroker JS runtime Environment spezifische TS-Module speichert, sodass der TS-Compiler Code-Modifikationen erkennt und nur geänderte Module neu kompiliert, habe ich folgende zwei Bespiel TS-Module erstellt:

      //TS-Module Test0:

      export class MyClass {
      constructor(val1: number, val2: number) {
      this.v1 = val1;
      this.v2 = val2;
      }
      public Get(): number {
      return this.v1 * this.v2;
      }
      private v1: number;
      private v2: number;
      }

      //TS-Module Test1:

      moduleResolution: 'node' // option to specify the module resolution strategy
      import { MyClass } from './Test0';
      const obj = new MyClass(2, 3);
      console.error(obj.Get());

      Die beiden TS-Module befinden sich unter dem Standard Ordner common vom iobroker Editor und der Compiler meldet, dass er das TS-Module Test0 nicht finden kann.

      Könnte mir jemand mit typescript Erfahrung bitte folgende Fragen beantworten?

        1. Wo befinden sich die beiden TS-Module Test0 bzw. Test1 physikalisch?
        1. Muss ich dem TS-Compiler den SRC-Pfad explizit bekannt geben und falls ja, wo befindet sich eine entsprechende tsconfig.json-Datei?
        1. Muss ich dem TS-Compiler spezifische Optionen bekanntgeben, oder wurden diese bereits durch die TS-Projekt Erstellung automatisch erstellt?
        1. Wo befinden sich die Build Dateien des Compilers auf dem System?
        1. Ist für das iobroker runtime environment ein für node v14 passendes Paket zu installieren, damit eine TS-Modul Verwaltung im iobroker Editor überhaupt möglich wird?
          (npm install --save-dev @tsconfig/node14)

      Vielleicht hat jemand mit TS-Erfahrung, die Gnade mich meiner Unwissenheit zu entledigen?

      Herzlichen Dank
      Kobi

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

      @kobi Der Skript-Adapter unterstützt prinzipbedingt keine Module (außer welche, die du von extern lädst).
      Warum? https://nodejs.org/api/vm.html#class-vmmodule ist immer noch im experimental Status...

      Alle Skripte werden daher als standalone Skripte behandelt, bis auf globale Skripte, die allen nicht-globalen Skripten vorne angefügt werden (tatsächlich als Text vor den anderen Code gehängt).

      D.h.:
      TS-Module Test0 bzw. Test1 sind keine Module!. Alle Skripte werden in Objekten gespeichert unter script.js.*
      Importe aus anderen Skripten funktionieren nicht.

      Muss ich dem TS-Compiler den SRC-Pfad explizit bekannt geben und falls ja, wo befindet sich eine entsprechende tsconfig.json-Datei?
      Muss ich dem TS-Compiler spezifische Optionen bekanntgeben, oder wurden diese bereits durch die TS-Projekt Erstellung automatisch erstellt?

      Nein, es gibt in-memory eine tsconfig, die du nicht bearbeiten kannst. Prinzipbedingt kannst du die auch nicht ändern, weil die tsconfig so konfiguriert ist, dass die ausgegebenen Skripte in der Javascript-VM laufen können. Diese ist vom Featureset etwas begrenzter als das volle Node.js.

      Wo befinden sich die Build Dateien des Compilers auf dem System?

      Der Compiler? Als dependency virtual-tsc -> typescript.
      Die kompilierten Skripte? Ebenfalls in den oben erwähnten Objekten script.js.*

      Ist für das iobroker runtime environment ein für node v14 passendes Paket zu installieren, damit eine TS-Modul Verwaltung im iobroker Editor überhaupt möglich wird?

      Nein, siehe oben. Außerdem wäre @tsconfig/node14 vom Target zu hoch für die VM, welche es5 benötigt.

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

      1 Antwort Letzte Antwort
      0
      • KobiK Offline
        KobiK Offline
        Kobi
        schrieb am zuletzt editiert von
        #3

        @AlCalzone Danke für Deine schnelle, kompetente und ausführliche Antwort. Daraus konnte bestimmt nicht nur ich viele neue Erkenntnisse gewinnen.

        Herzlichst
        Kobi

        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

        787

        Online

        32.5k

        Benutzer

        81.8k

        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