Theme Javascript in mehrere Dateien aufteilen

Komplexe Themen-JavaScript-Dateien können in mehrere Dateien aufgeteilt werden, um alles schön organisiert zu halten.

Um diese Funktionalität zu nutzen, fügen Sie einfach Dateien zum Ordner /javascripts in Ihrem Theme-Verzeichnis hinzu. Diese Dateien können nicht über die Discourse-UI bearbeitet werden. Sie müssen daher die Theme CLI verwenden oder das Theme über Git beziehen.

JavaScript-Dateien werden genau wie in Core/Plugins behandelt, daher sollten Sie dieselbe Datei-/Ordnerstruktur befolgen. Theme-Dateien werden nach Core/Plugins geladen. Wenn die Dateinamen übereinstimmen, hat die Theme-Version Vorrang.


Als Beispiel können Sie nun das unter Using Plugin Outlet Connectors from a Theme or Plugin beschriebene Vorgehen durch das Hinzufügen einer einzigen Datei zu Ihrem Theme erreichen:

/javascripts/my-theme/connectors/discovery-list-container-top/add-header-message.gjs

import Component from "@glimmer/component"; import { service } from
"@ember/service"; export default class HeaderMessage extends Component {
@service currentUser;

	<template>
  Welcome
  {{this.currentUser.username}}
	</template>
}

Um die JS-API zu verwenden, erstellen Sie einen Initialisierer:

/javascripts/discourse/api-initializers/init-theme.gjs

import { apiInitializer } from "discourse/lib/api";

export default apiInitializer((api) => {
  // Ihr Code hier
});

Wenn Sie eine völlig andere .js-Asset-Datei benötigen (z. B. für einen Web Worker), lesen Sie sich bitte diesen Thread durch.


Dieses Dokument wird versioniert – schlagen Sie Änderungen auf GitHub vor.

27 „Gefällt mir“