Merge pull request #231 from spotify/soapraj/plugin-assets
copy plugin assets to dist
This commit is contained in:
+80
@@ -0,0 +1,80 @@
|
||||
/// <reference types="node" />
|
||||
/// <reference types="react" />
|
||||
/// <reference types="react-dom" />
|
||||
|
||||
declare namespace NodeJS {
|
||||
interface ProcessEnv {
|
||||
readonly NODE_ENV: 'development' | 'production' | 'test';
|
||||
}
|
||||
}
|
||||
|
||||
declare module '*.bmp' {
|
||||
const src: string;
|
||||
export default src;
|
||||
}
|
||||
|
||||
declare module '*.gif' {
|
||||
const src: string;
|
||||
export default src;
|
||||
}
|
||||
|
||||
declare module '*.jpg' {
|
||||
const src: string;
|
||||
export default src;
|
||||
}
|
||||
|
||||
declare module '*.jpeg' {
|
||||
const src: string;
|
||||
export default src;
|
||||
}
|
||||
|
||||
declare module '*.png' {
|
||||
const src: string;
|
||||
export default src;
|
||||
}
|
||||
|
||||
declare module '*.webp' {
|
||||
const src: string;
|
||||
export default src;
|
||||
}
|
||||
|
||||
declare module '*.svg' {
|
||||
import * as React from 'react';
|
||||
|
||||
export const ReactComponent: React.FunctionComponent<React.SVGProps<
|
||||
SVGSVGElement
|
||||
> & { title?: string }>;
|
||||
|
||||
const src: string;
|
||||
export default src;
|
||||
}
|
||||
|
||||
declare module '*.css' {
|
||||
const classes: { readonly [key: string]: string };
|
||||
export default classes;
|
||||
}
|
||||
|
||||
declare module '*.scss' {
|
||||
const classes: { readonly [key: string]: string };
|
||||
export default classes;
|
||||
}
|
||||
|
||||
declare module '*.sass' {
|
||||
const classes: { readonly [key: string]: string };
|
||||
export default classes;
|
||||
}
|
||||
|
||||
declare module '*.module.css' {
|
||||
const classes: { readonly [key: string]: string };
|
||||
export default classes;
|
||||
}
|
||||
|
||||
declare module '*.module.scss' {
|
||||
const classes: { readonly [key: string]: string };
|
||||
export default classes;
|
||||
}
|
||||
|
||||
declare module '*.module.sass' {
|
||||
const classes: { readonly [key: string]: string };
|
||||
export default classes;
|
||||
}
|
||||
@@ -17,6 +17,9 @@
|
||||
import chalk from 'chalk';
|
||||
import { Command } from 'commander';
|
||||
import { spawnSync } from 'child_process';
|
||||
import fs from 'fs-extra';
|
||||
import recursive from 'recursive-readdir';
|
||||
import path from 'path';
|
||||
|
||||
export default async (cmd: Command) => {
|
||||
const args = [
|
||||
@@ -33,6 +36,7 @@ export default async (cmd: Command) => {
|
||||
}
|
||||
|
||||
try {
|
||||
await copyStaticAssets();
|
||||
const result = spawnSync('tsc', args, { stdio: 'inherit' });
|
||||
if (result.error) {
|
||||
throw result.error;
|
||||
@@ -43,3 +47,20 @@ export default async (cmd: Command) => {
|
||||
process.exit(1);
|
||||
}
|
||||
};
|
||||
|
||||
const copyStaticAssets = async () => {
|
||||
const pluginRoot = fs.realpathSync(process.cwd());
|
||||
const source = path.resolve(pluginRoot, 'src');
|
||||
const destination = path.resolve(pluginRoot, 'dist', 'cjs');
|
||||
const assetFiles = await recursive(source, [
|
||||
'**/*.tsx',
|
||||
'**/*.ts',
|
||||
'**/*.js',
|
||||
]);
|
||||
assetFiles.forEach(file => {
|
||||
const fileToBeCopied = file.replace(source, destination);
|
||||
const dirForFileToBeCopied = path.dirname(fileToBeCopied);
|
||||
fs.ensureDirSync(dirForFileToBeCopied);
|
||||
fs.copyFileSync(file, file.replace(source, destination).toString());
|
||||
});
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user