Add Bridgeable dev watch command
This commit is contained in:
+2
-2
@@ -1,6 +1,6 @@
|
|||||||
import { build as viteBuild } from 'vite';
|
import { build as viteBuild } from 'vite';
|
||||||
import { createViteConfig } from './vite-config.js';
|
import { createViteConfig } from './vite-config.js';
|
||||||
|
|
||||||
export const buildSource = async ({ sourceDir, outDir, config }) => {
|
export const buildSource = async ({ sourceDir, outDir, config, watch = false }) => {
|
||||||
await viteBuild(createViteConfig({ sourceDir, outDir, config }));
|
return viteBuild(createViteConfig({ sourceDir, outDir, config, watch }));
|
||||||
};
|
};
|
||||||
|
|||||||
+12
@@ -7,6 +7,7 @@ import { packDist } from './pack.js';
|
|||||||
const usage = `Usage:
|
const usage = `Usage:
|
||||||
bridgeable-build validate --source <dir>
|
bridgeable-build validate --source <dir>
|
||||||
bridgeable-build build --source <dir> --out <dir>
|
bridgeable-build build --source <dir> --out <dir>
|
||||||
|
bridgeable-build dev --source <dir> --out <dir>
|
||||||
bridgeable-build pack --dist <dir> --out <file>
|
bridgeable-build pack --dist <dir> --out <file>
|
||||||
bridgeable-build publish --source <dir> --out <dir> --artifact <file>
|
bridgeable-build publish --source <dir> --out <dir> --artifact <file>
|
||||||
`;
|
`;
|
||||||
@@ -106,6 +107,17 @@ export const runCli = async (processArgv) => {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (command === 'dev') {
|
||||||
|
validateOrThrow(sourceDir, config);
|
||||||
|
await buildSource({
|
||||||
|
sourceDir,
|
||||||
|
outDir: resolve(args.out ? String(args.out) : 'dist'),
|
||||||
|
config,
|
||||||
|
watch: true
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (command === 'publish') {
|
if (command === 'publish') {
|
||||||
const outDir = resolve(requireArg(args, 'out'));
|
const outDir = resolve(requireArg(args, 'out'));
|
||||||
validateOrThrow(sourceDir, config);
|
validateOrThrow(sourceDir, config);
|
||||||
|
|||||||
+13
-1
@@ -5,6 +5,13 @@ import { collectEntries, normalizePath, shouldCopyFile, walkFiles } from './file
|
|||||||
|
|
||||||
const copyServerFilesPlugin = ({ sourceDir, outDir }) => ({
|
const copyServerFilesPlugin = ({ sourceDir, outDir }) => ({
|
||||||
name: 'copy-bridgeable-server-files',
|
name: 'copy-bridgeable-server-files',
|
||||||
|
buildStart() {
|
||||||
|
walkFiles(sourceDir, (absolutePath) => {
|
||||||
|
if (shouldCopyFile(basename(absolutePath))) {
|
||||||
|
this.addWatchFile(absolutePath);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
closeBundle() {
|
closeBundle() {
|
||||||
walkFiles(sourceDir, (absolutePath) => {
|
walkFiles(sourceDir, (absolutePath) => {
|
||||||
const relativePath = normalizePath(relative(sourceDir, absolutePath));
|
const relativePath = normalizePath(relative(sourceDir, absolutePath));
|
||||||
@@ -21,7 +28,7 @@ const copyServerFilesPlugin = ({ sourceDir, outDir }) => ({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
export const createViteConfig = ({ sourceDir, outDir, config }) => {
|
export const createViteConfig = ({ sourceDir, outDir, config, watch = false }) => {
|
||||||
const sourceRoot = resolve(sourceDir);
|
const sourceRoot = resolve(sourceDir);
|
||||||
const outputRoot = resolve(outDir);
|
const outputRoot = resolve(outDir);
|
||||||
|
|
||||||
@@ -34,6 +41,11 @@ export const createViteConfig = ({ sourceDir, outDir, config }) => {
|
|||||||
outDir: outputRoot,
|
outDir: outputRoot,
|
||||||
emptyOutDir: true,
|
emptyOutDir: true,
|
||||||
manifest: 'manifest.json',
|
manifest: 'manifest.json',
|
||||||
|
watch: watch
|
||||||
|
? {
|
||||||
|
exclude: ['**/.git/**', '**/dist/**', '**/node_modules/**', '**/storybook-static/**']
|
||||||
|
}
|
||||||
|
: null,
|
||||||
rollupOptions: {
|
rollupOptions: {
|
||||||
input: collectEntries(sourceRoot, config),
|
input: collectEntries(sourceRoot, config),
|
||||||
output: {
|
output: {
|
||||||
|
|||||||
Reference in New Issue
Block a user