Merge branch 'master' of github.com:spotify/backstage into shmidt-i/create-app-backend

This commit is contained in:
Ivan Shmidt
2020-07-27 14:40:57 +02:00
141 changed files with 6569 additions and 1174 deletions
+5
View File
@@ -50,6 +50,11 @@ declare module '*.webp' {
export default src;
}
declare module '*.yaml' {
const src: string;
export default src;
}
declare module '*.icon.svg' {
import { ComponentType } from 'react';
import { SvgIconProps } from '@material-ui/core';
+2 -2
View File
@@ -38,7 +38,7 @@ async function getConfig() {
transform: {
'\\.esm\\.js$': require.resolve('jest-esm-transformer'),
'\\.(js|jsx|ts|tsx)': require.resolve('ts-jest'),
'\\.(bmp|gif|jpe|png|frag|xml|svg)': require.resolve(
'\\.(bmp|gif|jpg|jpeg|png|frag|xml|svg)': require.resolve(
'./jestFileTransform.js',
),
},
@@ -49,7 +49,7 @@ async function getConfig() {
// Default behaviour is to not apply transforms for node_modules, but we still want
// to apply the esm-transformer to .esm.js files, since that's what we use in backstage packages.
transformIgnorePatterns: [
'/node_modules/(?!.*\\.(?:esm\\.js|bmp|gif|jpe|png|frag|xml|svg)$)',
'/node_modules/(?!.*\\.(?:esm\\.js|bmp|gif|jpg|jpeg|png|frag|xml|svg)$)',
],
};
+3 -2
View File
@@ -29,14 +29,15 @@
"backstage-cli": "bin/backstage-cli"
},
"dependencies": {
"@backstage/config": "^0.1.1-alpha.13",
"@backstage/config-loader": "^0.1.1-alpha.13",
"@backstage/config": "^0.1.1-alpha.16",
"@backstage/config-loader": "^0.1.1-alpha.16",
"@hot-loader/react-dom": "^16.13.0",
"@lerna/package-graph": "^3.18.5",
"@lerna/project": "^3.18.0",
"@rollup/plugin-commonjs": "^13.0.0",
"@rollup/plugin-json": "^4.0.2",
"@rollup/plugin-node-resolve": "^8.1.0",
"@rollup/plugin-yaml": "^2.1.1",
"@spotify/eslint-config": "^7.0.1",
"@sucrase/webpack-loader": "^2.0.0",
"@svgr/plugin-jsx": "4.3.x",
+2
View File
@@ -26,6 +26,7 @@ import imageFiles from 'rollup-plugin-image-files';
import svgr from '@svgr/rollup';
import dts from 'rollup-plugin-dts';
import json from '@rollup/plugin-json';
import yaml from '@rollup/plugin-yaml';
import { RollupOptions, OutputOptions } from 'rollup';
import { BuildOptions, Output } from './types';
@@ -93,6 +94,7 @@ export const makeConfigs = async (
postcss(),
imageFiles({ exclude: '**/*.icon.svg' }),
json(),
yaml(),
svgr({
include: '**/*.icon.svg',
template: svgrTemplate,
+2 -7
View File
@@ -25,11 +25,6 @@ import { Config } from '@backstage/config';
import { BundlingPaths } from './paths';
import { transforms } from './transforms';
import { BundlingOptions, BackendBundlingOptions } from './types';
// import checkRequiredFiles from 'react-dev-utils/checkRequiredFiles';
// import ModuleNotFoundPlugin from 'react-dev-utils/ModuleNotFoundPlugin';
// import errorOverlayMiddleware from 'react-dev-utils/errorOverlayMiddleware';
// import evalSourceMapMiddleware from 'react-dev-utils/evalSourceMapMiddleware';
// import WatchMissingNodeModulesPlugin from 'react-dev-utils/WatchMissingNodeModulesPlugin';
export function resolveBaseUrl(config: Config): URL {
const baseUrl = config.getString('app.baseUrl');
@@ -126,10 +121,10 @@ export function createConfig(
output: {
path: paths.targetDist,
publicPath: validBaseUrl.pathname,
filename: isDev ? '[name].js' : '[name].[hash:8].js',
filename: isDev ? '[name].js' : 'static/[name].[hash:8].js',
chunkFilename: isDev
? '[name].chunk.js'
: '[name].[chunkhash:8].chunk.js',
: 'static/[name].[chunkhash:8].chunk.js',
},
plugins,
};
+1 -1
View File
@@ -46,7 +46,7 @@ export const optimization = (
},
filename: isDev
? 'module-[name].js'
: 'module-[name].[chunkhash:8].js',
: 'static/module-[name].[chunkhash:8].js',
priority: 10,
minSize: 100000,
minChunks: 1,
+3 -3
View File
@@ -79,7 +79,7 @@ export const transforms = (
loader: require.resolve('url-loader'),
options: {
limit: 10000,
name: 'static/media/[name].[hash:8].[ext]',
name: 'static/[name].[hash:8].[ext]',
},
},
{
@@ -111,8 +111,8 @@ export const transforms = (
} else {
plugins.push(
new MiniCssExtractPlugin({
filename: '[name].[contenthash:8].css',
chunkFilename: '[name].[id].[contenthash:8].css',
filename: 'static/[name].[contenthash:8].css',
chunkFilename: 'static/[name].[id].[contenthash:8].css',
}),
);
}
+8 -4
View File
@@ -134,11 +134,15 @@ async function findTargetPackages(pkgNames: string[]): Promise<LernaPackage[]> {
throw new Error(`Package '${name}' not found`);
}
const pkgDeps = Object.keys(node.pkg.dependencies);
const localDeps: string[] = Array.from(node.localDependencies.keys());
const filteredDeps = localDeps.filter(dep => pkgDeps.includes(dep));
// Don't include dependencies of packages that are marked as bundled
if (!node.pkg.get('bundled')) {
const pkgDeps = Object.keys(node.pkg.dependencies);
const localDeps: string[] = Array.from(node.localDependencies.keys());
const filteredDeps = localDeps.filter(dep => pkgDeps.includes(dep));
searchNames.push(...filteredDeps);
}
searchNames.push(...filteredDeps);
targets.set(name, node.pkg);
}
+3 -5
View File
@@ -47,7 +47,7 @@ export type Paths = {
resolveTargetRoot: ResolveFunc;
};
// Looks for a package.json that has name: "root" to identify the root of the monorepo
// Looks for a package.json with a workspace config to identify the root of the monorepo
export function findRootPath(topPath: string): string {
let path = topPath;
@@ -58,7 +58,7 @@ export function findRootPath(topPath: string): string {
if (exists) {
try {
const data = fs.readJsonSync(packagePath);
if (data.name === 'root' || data.name.includes('backstage-e2e')) {
if (data.workspaces?.packages) {
return path;
}
} catch (error) {
@@ -70,9 +70,7 @@ export function findRootPath(topPath: string): string {
const newPath = dirname(path);
if (newPath === path) {
throw new Error(
`No package.json with name "root" found as a parent of ${topPath}`,
);
return topPath; // We didn't find any root package.json, assume we're not in a monorepo
}
path = newPath;
}
+2
View File
@@ -27,3 +27,5 @@ declare module 'rollup-plugin-image-files' {
declare module '@svgr/rollup' {
export default function svgr(options?: any): any;
}
declare module '@rollup/plugin-yaml';
@@ -7,7 +7,6 @@
},
"scripts": {
"start": "yarn workspace app start",
"bundle": "yarn workspace app bundle",
"build": "lerna run build",
"tsc": "tsc",
"clean": "backstage-cli clean && lerna run clean",
@@ -32,7 +32,7 @@
},
"scripts": {
"start": "backstage-cli app:serve",
"bundle": "backstage-cli app:build",
"build": "backstage-cli app:build",
"test": "backstage-cli test",
"lint": "backstage-cli lint",
"test:e2e": "cross-env PORT=3001 start-server-and-test start http://localhost:3001 cy:dev",