mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Enable svg bundle with rollup (#24258)
This commit is contained in:
parent
890e1d8f94
commit
97c0285543
@ -3,9 +3,11 @@ import execa = require('execa');
|
|||||||
import * as fs from 'fs';
|
import * as fs from 'fs';
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
import * as path from 'path';
|
import * as path from 'path';
|
||||||
|
import { resolve as resolvePath } from 'path';
|
||||||
import chalk from 'chalk';
|
import chalk from 'chalk';
|
||||||
import { useSpinner } from '../utils/useSpinner';
|
import { useSpinner } from '../utils/useSpinner';
|
||||||
import { Task, TaskRunner } from './task';
|
import { Task, TaskRunner } from './task';
|
||||||
|
import globby from 'globby';
|
||||||
|
|
||||||
let distDir: string, cwd: string;
|
let distDir: string, cwd: string;
|
||||||
|
|
||||||
@ -68,6 +70,7 @@ const preparePackage = async (pkg: any) => {
|
|||||||
|
|
||||||
const moveFiles = () => {
|
const moveFiles = () => {
|
||||||
const files = ['README.md', 'CHANGELOG.md', 'index.js'];
|
const files = ['README.md', 'CHANGELOG.md', 'index.js'];
|
||||||
|
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
return useSpinner<void>(`Moving ${files.join(', ')} files`, async () => {
|
return useSpinner<void>(`Moving ${files.join(', ')} files`, async () => {
|
||||||
const promises = files.map(file => {
|
const promises = files.map(file => {
|
||||||
@ -86,6 +89,26 @@ const moveFiles = () => {
|
|||||||
})();
|
})();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const moveStaticFiles = async (pkg: any, cwd: string) => {
|
||||||
|
if (pkg.name.endsWith('/ui')) {
|
||||||
|
const staticFiles = await globby(resolvePath(process.cwd(), 'src/**/*.+(png|svg|gif|jpg)'));
|
||||||
|
return useSpinner<void>(`Moving static files`, async () => {
|
||||||
|
const promises = staticFiles.map(file => {
|
||||||
|
return new Promise((resolve, reject) => {
|
||||||
|
fs.copyFile(file, `${cwd}/compiled/${file.replace(`${cwd}/src`, '')}`, (err: any) => {
|
||||||
|
if (err) {
|
||||||
|
reject(err);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
resolve();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
await Promise.all(promises);
|
||||||
|
})();
|
||||||
|
}
|
||||||
|
};
|
||||||
interface PackageBuildOptions {
|
interface PackageBuildOptions {
|
||||||
scope: string;
|
scope: string;
|
||||||
}
|
}
|
||||||
@ -107,6 +130,7 @@ const buildTaskRunner: TaskRunner<PackageBuildOptions> = async ({ scope }) => {
|
|||||||
|
|
||||||
await clean();
|
await clean();
|
||||||
await compile();
|
await compile();
|
||||||
|
await moveStaticFiles(pkg, cwd);
|
||||||
await rollup();
|
await rollup();
|
||||||
await preparePackage(pkg);
|
await preparePackage(pkg);
|
||||||
await moveFiles();
|
await moveFiles();
|
||||||
|
@ -71,6 +71,7 @@
|
|||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@rollup/plugin-commonjs": "11.0.2",
|
"@rollup/plugin-commonjs": "11.0.2",
|
||||||
|
"@rollup/plugin-image": "2.0.4",
|
||||||
"@rollup/plugin-node-resolve": "7.1.1",
|
"@rollup/plugin-node-resolve": "7.1.1",
|
||||||
"@storybook/addon-actions": "5.3.17",
|
"@storybook/addon-actions": "5.3.17",
|
||||||
"@storybook/addon-docs": "5.3.17",
|
"@storybook/addon-docs": "5.3.17",
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
import resolve from '@rollup/plugin-node-resolve';
|
import resolve from '@rollup/plugin-node-resolve';
|
||||||
import commonjs from '@rollup/plugin-commonjs';
|
import commonjs from '@rollup/plugin-commonjs';
|
||||||
|
import image from '@rollup/plugin-image';
|
||||||
// import sourceMaps from 'rollup-plugin-sourcemaps';
|
// import sourceMaps from 'rollup-plugin-sourcemaps';
|
||||||
import { terser } from 'rollup-plugin-terser';
|
import { terser } from 'rollup-plugin-terser';
|
||||||
|
|
||||||
@ -71,6 +72,7 @@ const buildCjsPackage = ({ env }) => {
|
|||||||
}),
|
}),
|
||||||
resolve(),
|
resolve(),
|
||||||
// sourceMaps(),
|
// sourceMaps(),
|
||||||
|
image(),
|
||||||
env === 'production' && terser(),
|
env === 'production' && terser(),
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
32
yarn.lock
32
yarn.lock
@ -4354,6 +4354,14 @@
|
|||||||
magic-string "^0.25.2"
|
magic-string "^0.25.2"
|
||||||
resolve "^1.11.0"
|
resolve "^1.11.0"
|
||||||
|
|
||||||
|
"@rollup/plugin-image@2.0.4":
|
||||||
|
version "2.0.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/@rollup/plugin-image/-/plugin-image-2.0.4.tgz#a9b22737684986d2299b7803b82bf87af47d41de"
|
||||||
|
integrity sha512-W23bfKBZw/k6MXks0PInxazHhbfiN5u2ySPMHFVPt2jgmACNewlV3kUR6MvpE9YEliETU5ygGetsj5SDTUW4HQ==
|
||||||
|
dependencies:
|
||||||
|
"@rollup/pluginutils" "^3.0.4"
|
||||||
|
mini-svg-data-uri "^1.1.3"
|
||||||
|
|
||||||
"@rollup/plugin-json@4.0.3":
|
"@rollup/plugin-json@4.0.3":
|
||||||
version "4.0.3"
|
version "4.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/@rollup/plugin-json/-/plugin-json-4.0.3.tgz#747e2c2884c5a0fa00b66c9c0f3f1012cddca534"
|
resolved "https://registry.yarnpkg.com/@rollup/plugin-json/-/plugin-json-4.0.3.tgz#747e2c2884c5a0fa00b66c9c0f3f1012cddca534"
|
||||||
@ -4379,6 +4387,15 @@
|
|||||||
dependencies:
|
dependencies:
|
||||||
estree-walker "^1.0.1"
|
estree-walker "^1.0.1"
|
||||||
|
|
||||||
|
"@rollup/pluginutils@^3.0.4":
|
||||||
|
version "3.0.10"
|
||||||
|
resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.0.10.tgz#a659b9025920378494cd8f8c59fbf9b3a50d5f12"
|
||||||
|
integrity sha512-d44M7t+PjmMrASHbhgpSbVgtL6EFyX7J4mYxwQ/c5eoaE6N2VgCgEcWVzNnwycIloti+/MpwFr8qfw+nRw00sw==
|
||||||
|
dependencies:
|
||||||
|
"@types/estree" "0.0.39"
|
||||||
|
estree-walker "^1.0.1"
|
||||||
|
picomatch "^2.2.2"
|
||||||
|
|
||||||
"@rollup/pluginutils@^3.0.8":
|
"@rollup/pluginutils@^3.0.8":
|
||||||
version "3.0.9"
|
version "3.0.9"
|
||||||
resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.0.9.tgz#aa6adca2c45e5a1b950103a999e3cddfe49fd775"
|
resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.0.9.tgz#aa6adca2c45e5a1b950103a999e3cddfe49fd775"
|
||||||
@ -8581,6 +8598,11 @@ caniuse-api@^3.0.0:
|
|||||||
lodash.memoize "^4.1.2"
|
lodash.memoize "^4.1.2"
|
||||||
lodash.uniq "^4.5.0"
|
lodash.uniq "^4.5.0"
|
||||||
|
|
||||||
|
caniuse-db@1.0.30000772:
|
||||||
|
version "1.0.30000772"
|
||||||
|
resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000772.tgz#51aae891768286eade4a3d8319ea76d6a01b512b"
|
||||||
|
integrity sha1-UarokXaChureSj2DGep21qAbUSs=
|
||||||
|
|
||||||
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000989, caniuse-lite@^1.0.30000999:
|
caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000989, caniuse-lite@^1.0.30000999:
|
||||||
version "1.0.30000999"
|
version "1.0.30000999"
|
||||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000999.tgz#427253a69ad7bea4aa8d8345687b8eec51ca0e43"
|
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000999.tgz#427253a69ad7bea4aa8d8345687b8eec51ca0e43"
|
||||||
@ -16997,6 +17019,11 @@ mini-css-extract-plugin@^0.7.0:
|
|||||||
schema-utils "^1.0.0"
|
schema-utils "^1.0.0"
|
||||||
webpack-sources "^1.1.0"
|
webpack-sources "^1.1.0"
|
||||||
|
|
||||||
|
mini-svg-data-uri@^1.1.3:
|
||||||
|
version "1.1.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/mini-svg-data-uri/-/mini-svg-data-uri-1.1.3.tgz#9759ee5f4d89a4b724d089ce52eab4b623bfbc88"
|
||||||
|
integrity sha512-EeKOmdzekjdPe53/GdxmUpNgDQFkNeSte6XkJmOBt4BfWL6FQ9G9RtLNh+JMjFS3LhdpSICMIkZdznjiecASHQ==
|
||||||
|
|
||||||
minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
|
minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
|
resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
|
||||||
@ -18667,6 +18694,11 @@ picomatch@^2.0.5:
|
|||||||
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.0.7.tgz#514169d8c7cd0bdbeecc8a2609e34a7163de69f6"
|
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.0.7.tgz#514169d8c7cd0bdbeecc8a2609e34a7163de69f6"
|
||||||
integrity sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA==
|
integrity sha512-oLHIdio3tZ0qH76NybpeneBhYVj0QFTfXEFTc/B3zKQspYfYYkWYgFsmzo+4kvId/bQRcNkVeguI3y+CD22BtA==
|
||||||
|
|
||||||
|
picomatch@^2.2.2:
|
||||||
|
version "2.2.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
|
||||||
|
integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==
|
||||||
|
|
||||||
pify@^2.0.0, pify@^2.2.0, pify@^2.3.0:
|
pify@^2.0.0, pify@^2.2.0, pify@^2.3.0:
|
||||||
version "2.3.0"
|
version "2.3.0"
|
||||||
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
|
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
|
||||||
|
Loading…
Reference in New Issue
Block a user