You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In {product}, third-party dynamic plugins can be integrated seamlessly, enabling the use of external plugins alongside native ones. This flexibility allows you to enhance the platform’s functionality without modifying its core structure. To add third-party dynamic plugins, you can either export them as standalone packages or wrap them in custom wrappers, especially if you want to adjust the plugin’s dependencies or configurations for compatibility.
5
+
In {product}, third-party dynamic plugins can be integrated seamlessly, enabling the use of external plugins alongside native ones. This flexibility allows you to enhance the platform functionality without modifying its core structure. To add third-party dynamic plugins, you can either export them as standalone packages or wrap them in custom wrappers, especially if you want to adjust the dependencies or configurations of a plugin for compatibility.
6
6
7
7
The third-party plugins are typically packaged as dynamic plugins, which means they can be loaded at runtime, enabling you to easily manage external modules without rebuilding the entire application. The process involves creating a wrapper that exports the plugin code, ensuring that dependencies are correctly bundled or marked as shared, depending on their relationship to the {product-short} environment.
8
8
@@ -24,13 +24,13 @@ The new backend system is created using `createBackendPlugin()` or `createBacken
24
24
25
25
The backend plugins contains two types of dependencies, including:
26
26
27
-
* *Shared dependencies* are provided by the Backstage application and listed as `peerDependencies` in `package.json` file, not bundled in the dynamic plugin package. By default, all `@backstage` packages are shared.
27
+
* *Shared dependencies* are provided by an application and listed as `peerDependencies` in `package.json` file, not bundled in the dynamic plugin package. For example, by default, all `@backstage` packages are shared.
28
28
+
29
29
You can use the `--shared-package` flag to specify shared dependencies. To treat a `@backstage` package as private, use the negation prefix (`!`).
30
30
31
31
* *Embedded dependencies* are bundled into the dynamic plugin package with their dependencies hoisted to the top level. By default, packages with `-node` or `-common` suffixes are embedded.
32
32
+
33
-
You can use the `--embed-package` flag to specify additional embedded packages, including those in the same monorepo that do not follow the default naming convention.
33
+
You can use the `--embed-package` flag to specify additional embedded packages, including those in the same repository that do not follow the default naming convention.
34
34
35
35
The following is an example of exporting a dynamic plugin with shared and embedded packages:
<2> `@backstage/plugin-notifications-backend` package is marked as an embedded dependency and is bundled in the dynamic plugin package.
45
45
--
46
46
47
-
Frontend plugins::
47
+
Front-end plugins::
48
48
+
49
49
--
50
-
Frontend plugins can leverage Scalprum for configuration, which the CLI can generate automatically during the export process. The generated default configuration is logged when running the following command:
50
+
Front-end plugins can use `scalprum` for configuration, which the CLI can generate automatically during the export process. The generated default configuration is logged when running the following command:
51
51
52
52
.Example command to log the default configuration
53
53
[source,bash]
54
54
----
55
55
npx @janus-idp/cli@latest export-dynamic
56
56
----
57
57
58
-
The following is an example of default Scalprum configuration:
58
+
The following is an example of default `scalprum` configuration:
59
59
60
-
.Default Scalprum configuration
60
+
.Default `scalprum` configuration
61
61
[source,json]
62
62
----
63
63
"scalprum": {
@@ -68,9 +68,9 @@ The following is an example of default Scalprum configuration:
68
68
}
69
69
----
70
70
71
-
To customize Scalprum, add a `scalprum` section to the `package.json` file. For example:
71
+
You can add a `scalprum` section to the `package.json` file. For example:
0 commit comments