forked from nrwl/nx
/
build.impl.ts
42 lines (37 loc) · 1.06 KB
/
build.impl.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import 'dotenv/config';
import { ExecutorContext, logger } from '@nrwl/devkit';
import { build, InlineConfig } from 'vite';
import { getBuildAndSharedConfig } from '../../utils/options-utils';
import { ViteBuildExecutorOptions } from './schema';
import { copyAssets } from '@nrwl/js';
import { existsSync } from 'fs';
import { join } from 'path';
export default async function viteBuildExecutor(
options: ViteBuildExecutorOptions,
context: ExecutorContext
) {
const projectRoot = context.workspace.projects[context.projectName].root;
await runInstance(await getBuildAndSharedConfig(options, context));
// For buildable libs, copy package.json if it exists.
if (existsSync(join(projectRoot, 'package.json'))) {
await copyAssets(
{
outputPath: options.outputPath,
assets: [
{
input: '.',
output: '.',
glob: 'package.json',
},
],
},
context
);
}
return { success: true };
}
function runInstance(options: InlineConfig) {
return build({
...options,
});
}