67 lines
1.6 KiB
TypeScript
67 lines
1.6 KiB
TypeScript
import {
|
|
addDependenciesToPackageJson,
|
|
createProjectGraphAsync,
|
|
formatFiles,
|
|
GeneratorCallback,
|
|
readNxJson,
|
|
Tree,
|
|
} from '@nx/devkit';
|
|
import { nxVersion, rollupVersion } from '../../utils/versions';
|
|
import { Schema } from './schema';
|
|
import { addPlugin } from '@nx/devkit/src/utils/add-plugin';
|
|
import { createNodesV2 } from '../../plugins/plugin';
|
|
|
|
export async function rollupInitGenerator(tree: Tree, schema: Schema) {
|
|
let task: GeneratorCallback = () => {};
|
|
const nxJson = readNxJson(tree);
|
|
schema.addPlugin ??=
|
|
process.env.NX_ADD_PLUGINS !== 'false' &&
|
|
nxJson.useInferencePlugins !== false;
|
|
|
|
if (!schema.skipPackageJson) {
|
|
const devDependencies = { '@nx/rollup': nxVersion };
|
|
if (schema.addPlugin) {
|
|
// Ensure user can run Rollup CLI.
|
|
devDependencies['rollup'] = rollupVersion;
|
|
}
|
|
task = addDependenciesToPackageJson(
|
|
tree,
|
|
{},
|
|
devDependencies,
|
|
undefined,
|
|
schema.keepExistingVersions
|
|
);
|
|
}
|
|
|
|
if (schema.addPlugin) {
|
|
await addPlugin(
|
|
tree,
|
|
await createProjectGraphAsync(),
|
|
'@nx/rollup/plugin',
|
|
createNodesV2,
|
|
{
|
|
buildTargetName: ['build', 'rollup:build', 'rollup-build'],
|
|
buildDepsTargetName: [
|
|
'build-deps',
|
|
'rollup:build-deps',
|
|
'rollup-build-deps',
|
|
],
|
|
watchDepsTargetName: [
|
|
'watch-deps',
|
|
'rollup:watch-deps',
|
|
'rollup-watch-deps',
|
|
],
|
|
},
|
|
schema.updatePackageScripts
|
|
);
|
|
}
|
|
|
|
if (!schema.skipFormat) {
|
|
await formatFiles(tree);
|
|
}
|
|
|
|
return task;
|
|
}
|
|
|
|
export default rollupInitGenerator;
|