From ac326ded477ba61d0a237dcd863f1d40d95fdcdf Mon Sep 17 00:00:00 2001 From: Jesse Yang Date: Thu, 4 Jun 2020 16:54:12 -0700 Subject: [PATCH] build: allow building only one (or more) package (#571) --- .../superset-ui/CONTRIBUTING.md | 6 ++++++ .../temporary_superset_ui/superset-ui/README.md | 6 ------ .../superset-ui/package.json | 4 ++-- .../superset-ui/scripts/build.js | 17 ++++++++++++----- .../scripts/{buildAssets.js => copyAssets.js} | 4 +++- 5 files changed, 23 insertions(+), 14 deletions(-) mode change 100644 => 100755 superset-frontend/temporary_superset_ui/superset-ui/scripts/build.js rename superset-frontend/temporary_superset_ui/superset-ui/scripts/{buildAssets.js => copyAssets.js} (92%) diff --git a/superset-frontend/temporary_superset_ui/superset-ui/CONTRIBUTING.md b/superset-frontend/temporary_superset_ui/superset-ui/CONTRIBUTING.md index 75273edd15..013a9ae6d4 100644 --- a/superset-frontend/temporary_superset_ui/superset-ui/CONTRIBUTING.md +++ b/superset-frontend/temporary_superset_ui/superset-ui/CONTRIBUTING.md @@ -11,6 +11,12 @@ yarn install yarn build ``` +To build only selected packages or plugins, + +```bash +yarn build "*chart-table" +``` + ### File organization [lerna](https://github.com/lerna/lerna/) and [yarn](https://yarnpkg.com) are used to manage versions diff --git a/superset-frontend/temporary_superset_ui/superset-ui/README.md b/superset-frontend/temporary_superset_ui/superset-ui/README.md index a0cf8860c7..38e4ebfdad 100644 --- a/superset-frontend/temporary_superset_ui/superset-ui/README.md +++ b/superset-frontend/temporary_superset_ui/superset-ui/README.md @@ -85,12 +85,6 @@ should be written in Typescript. Please read the [contributing guidelines](CONTRIBUTING.md) which include development environment setup and other things you should know about coding in this repo. -To build only selected plugins, - -```bash -node scripts/build.js "*legacy-plugin-chart-table" -``` - ### License Apache-2.0 diff --git a/superset-frontend/temporary_superset_ui/superset-ui/package.json b/superset-frontend/temporary_superset_ui/superset-ui/package.json index 540833a220..f553aab5f4 100644 --- a/superset-frontend/temporary_superset_ui/superset-ui/package.json +++ b/superset-frontend/temporary_superset_ui/superset-ui/package.json @@ -4,11 +4,11 @@ "description": "Superset UI", "private": true, "scripts": { - "build": "yarn babel && yarn type && yarn build:assets", + "build": "node ./scripts/build.js", + "build:assets": "node ./scripts/copyAssets.js", "babel": "yarn babel:cjs && yarn babel:esm", "babel:cjs": "nimbus babel --clean --workspaces=\"@superset-ui/!(demo|generator-superset)\" --config-file=../../babel.config.js", "babel:esm": "nimbus babel --clean --workspaces=\"@superset-ui/!(demo|generator-superset)\" --esm --config-file=../../babel.config.js", - "build:assets": "node ./scripts/buildAssets.js", "demo": "cd packages/superset-ui-demo && yarn demo:build", "demo:clean": "cd packages/superset-ui-demo && yarn demo:clean", "storybook": "cd packages/superset-ui-demo && yarn storybook", diff --git a/superset-frontend/temporary_superset_ui/superset-ui/scripts/build.js b/superset-frontend/temporary_superset_ui/superset-ui/scripts/build.js old mode 100644 new mode 100755 index 1efc7041cd..67179d072e --- a/superset-frontend/temporary_superset_ui/superset-ui/scripts/build.js +++ b/superset-frontend/temporary_superset_ui/superset-ui/scripts/build.js @@ -1,5 +1,6 @@ +#!/bin/env node /** - * Build only plugins specified by globs + * Build plugins specified by globs */ const { spawnSync } = require('child_process'); @@ -9,6 +10,7 @@ const extraArgs = process.argv.slice(2); process.env.PATH = `./node_modules/.bin:${process.env.PATH}`; const run = cmd => { + // eslint-disable-next-line no-console console.log(`>> ${cmd}`); const [p, ...args] = cmd.split(' '); const runner = spawnSync; @@ -18,15 +20,20 @@ const run = cmd => { } }; +const BABEL_CONFIG = '--config-file=../../babel.config.js'; + if (glob) { // lint is slow, so not turning it on by default if (extraArgs.includes('--lint')) { run(`nimbus eslint {packages,plugins}/${glob}/{src,test}`); } - run(`nimbus babel --clean --workspaces="@superset-ui/${glob}"`); - run(`nimbus babel --clean --workspaces="@superset-ui/${glob}" --esm`); + run(`nimbus babel --clean --workspaces="@superset-ui/${glob}" ${BABEL_CONFIG}`); + run(`nimbus babel --clean --workspaces="@superset-ui/${glob}" --esm ${BABEL_CONFIG}`); run(`nimbus typescript --build --workspaces="@superset-ui/${glob}"`); - require('./buildAssets'); + // eslint-disable-next-line global-require + require('./copyAssets'); } else { - run('yarn build'); + run('yarn babel'); + run('yarn type'); + run('yarn build:assets'); } diff --git a/superset-frontend/temporary_superset_ui/superset-ui/scripts/buildAssets.js b/superset-frontend/temporary_superset_ui/superset-ui/scripts/copyAssets.js similarity index 92% rename from superset-frontend/temporary_superset_ui/superset-ui/scripts/buildAssets.js rename to superset-frontend/temporary_superset_ui/superset-ui/scripts/copyAssets.js index db533dbd5f..d9ea7d90b2 100644 --- a/superset-frontend/temporary_superset_ui/superset-ui/scripts/buildAssets.js +++ b/superset-frontend/temporary_superset_ui/superset-ui/scripts/copyAssets.js @@ -1,6 +1,8 @@ -/* eslint-disable import/no-extraneous-dependencies, no-console */ +#!/bin/env node +/* eslint-disable no-console */ const fg = require('fast-glob'); const fs = require('fs-extra'); + const pkgGlob = process.argv[2] || '*'; const packages = fg.sync([`{packages,plugins}/${pkgGlob}`], {