Skip to content

Commit 38b4243

Browse files
committed
Support frontend plugin modules in CLI
Signed-off-by: solimant <solimant@users.noreply.github.com>
1 parent f196d9c commit 38b4243

File tree

10 files changed

+63
-0
lines changed

10 files changed

+63
-0
lines changed

.changeset/crazy-pants-exist.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@backstage/cli': minor
3+
---
4+
5+
Support frontend plugin modules in CLI

packages/cli/src/lib/version.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ import { version as coreComponents } from '../../../../packages/core-components/
4242
import { version as corePluginApi } from '../../../../packages/core-plugin-api/package.json';
4343
import { version as devUtils } from '../../../../packages/dev-utils/package.json';
4444
import { version as errors } from '../../../../packages/errors/package.json';
45+
import { version as frontendPluginApi } from '../../../../packages/frontend-plugin-api/package.json';
4546
import { version as testUtils } from '../../../../packages/test-utils/package.json';
4647
import { version as scaffolderNode } from '../../../../plugins/scaffolder-node/package.json';
4748
import { version as scaffolderNodeTestUtils } from '../../../../plugins/scaffolder-node-test-utils/package.json';
@@ -63,6 +64,7 @@ export const packageVersions: Record<string, string> = {
6364
'@backstage/core-plugin-api': corePluginApi,
6465
'@backstage/dev-utils': devUtils,
6566
'@backstage/errors': errors,
67+
'@backstage/frontend-plugin-api': frontendPluginApi,
6668
'@backstage/test-utils': testUtils,
6769
'@backstage/theme': theme,
6870
'@backstage/plugin-scaffolder-node': scaffolderNode,

packages/cli/src/modules/new/lib/defaultTemplates.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
export const defaultTemplates = [
1818
'@backstage/cli/templates/frontend-plugin',
19+
'@backstage/cli/templates/frontend-plugin-module',
1920
'@backstage/cli/templates/backend-plugin',
2021
'@backstage/cli/templates/backend-plugin-module',
2122
'@backstage/cli/templates/plugin-web-library',
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module.exports = require('@backstage/cli/config/eslint-factory')(__dirname);
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# {{packageName}}
2+
3+
The {{moduleId}} frontend module for the {{pluginId}} plugin.
4+
5+
_This plugin was created through the Backstage CLI_
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
{
2+
"name": "{{packageName}}",
3+
"description": "The {{moduleId}} frontend module for the {{pluginId}} plugin.",
4+
"main": "src/index.ts",
5+
"types": "src/index.ts",
6+
"publishConfig": {
7+
"access": "public",
8+
"main": "dist/index.cjs.js",
9+
"module": "dist/index.esm.js",
10+
"types": "dist/index.d.ts"
11+
},
12+
"backstage": {
13+
"role": "frontend-plugin-module"
14+
},
15+
"sideEffects": false,
16+
"scripts": {
17+
"build": "backstage-cli package build",
18+
"lint": "backstage-cli package lint",
19+
"test": "backstage-cli package test",
20+
"clean": "backstage-cli package clean",
21+
"prepack": "backstage-cli package prepack",
22+
"postpack": "backstage-cli package postpack"
23+
},
24+
"dependencies": {
25+
"@backstage/frontend-plugin-api": "{{versionQuery '@backstage/frontend-plugin-api'}}"
26+
},
27+
"devDependencies": {
28+
"@backstage/cli": "{{versionQuery '@backstage/cli'}}",
29+
"@testing-library/jest-dom": "{{versionQuery '@testing-library/jest-dom' '6.0.0'}}"
30+
},
31+
"files": [
32+
"dist"
33+
]
34+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
name: frontend-plugin-module
2+
role: frontend-plugin-module
3+
description: A new frontend module that extends an existing frontend plugin
4+
values:
5+
moduleVar: '{{ camelCase pluginId }}Module{{ upperFirst ( camelCase moduleId ) }}'
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export { {{ moduleVar }} } from './plugin';
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import { createFrontendModule } from '@backstage/frontend-plugin-api';
2+
3+
export const {{ moduleVar }} = createFrontendModule({
4+
pluginId: '{{ pluginId }}',
5+
extensions: [
6+
/* TODO */
7+
],
8+
});
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
import '@testing-library/jest-dom';

0 commit comments

Comments
 (0)