diff --git a/docs/generated/packages/js/executors/swc.json b/docs/generated/packages/js/executors/swc.json index c2ddecf4221f4..871bf81b1d392 100644 --- a/docs/generated/packages/js/executors/swc.json +++ b/docs/generated/packages/js/executors/swc.json @@ -116,6 +116,12 @@ "items": { "type": "string" }, "description": "List of target names that annotate a build target for a project", "default": ["build"] + }, + "generateLockfile": { + "type": "boolean", + "description": "Generate a lockfile (e.g. yarn.lock) that matches the workspace lockfile to ensure package versions match.", + "default": false, + "x-priority": "internal" } }, "required": ["main", "outputPath", "tsConfig"], diff --git a/docs/generated/packages/js/executors/tsc.json b/docs/generated/packages/js/executors/tsc.json index e6de3ce35f8d2..3cc27ffe2cb96 100644 --- a/docs/generated/packages/js/executors/tsc.json +++ b/docs/generated/packages/js/executors/tsc.json @@ -116,6 +116,12 @@ "items": { "type": "string" }, "description": "List of target names that annotate a build target for a project", "default": ["build"] + }, + "generateLockfile": { + "type": "boolean", + "description": "Generate a lockfile (e.g. yarn.lock) that matches the workspace lockfile to ensure package versions match.", + "default": false, + "x-priority": "internal" } }, "required": ["main", "outputPath", "tsConfig"], diff --git a/packages/js/src/executors/swc/schema.json b/packages/js/src/executors/swc/schema.json index 01e5f3bc87243..77856847d9ee9 100644 --- a/packages/js/src/executors/swc/schema.json +++ b/packages/js/src/executors/swc/schema.json @@ -97,6 +97,12 @@ }, "description": "List of target names that annotate a build target for a project", "default": ["build"] + }, + "generateLockfile": { + "type": "boolean", + "description": "Generate a lockfile (e.g. yarn.lock) that matches the workspace lockfile to ensure package versions match.", + "default": false, + "x-priority": "internal" } }, "required": ["main", "outputPath", "tsConfig"], diff --git a/packages/js/src/executors/tsc/schema.json b/packages/js/src/executors/tsc/schema.json index b73a5ba261810..97b03dfd64750 100644 --- a/packages/js/src/executors/tsc/schema.json +++ b/packages/js/src/executors/tsc/schema.json @@ -86,6 +86,12 @@ }, "description": "List of target names that annotate a build target for a project", "default": ["build"] + }, + "generateLockfile": { + "type": "boolean", + "description": "Generate a lockfile (e.g. yarn.lock) that matches the workspace lockfile to ensure package versions match.", + "default": false, + "x-priority": "internal" } }, "required": ["main", "outputPath", "tsConfig"], diff --git a/packages/js/src/utils/package-json/update-package-json.ts b/packages/js/src/utils/package-json/update-package-json.ts index e4c9cb5a8d562..885309bda1ace 100644 --- a/packages/js/src/utils/package-json/update-package-json.ts +++ b/packages/js/src/utils/package-json/update-package-json.ts @@ -41,6 +41,7 @@ export interface UpdatePackageJsonOption { excludeLibsInPackageJson?: boolean; updateBuildableProjectDepsInPackageJson?: boolean; buildableProjectDepsInPackageJsonType?: 'dependencies' | 'peerDependencies'; + generateLockfile?: boolean; } export function updatePackageJson( @@ -84,10 +85,13 @@ export function updatePackageJson( // save files writeJsonFile(`${options.outputPath}/package.json`, packageJson); - const lockFile = createLockFile(packageJson); - writeFileSync(`${options.outputPath}/${getLockFileName()}`, lockFile, { - encoding: 'utf-8', - }); + + if (options.generateLockfile) { + const lockFile = createLockFile(packageJson); + writeFileSync(`${options.outputPath}/${getLockFileName()}`, lockFile, { + encoding: 'utf-8', + }); + } } function addMissingDependencies( diff --git a/packages/js/src/utils/schema.d.ts b/packages/js/src/utils/schema.d.ts index 0d31037049c48..c09831472c11e 100644 --- a/packages/js/src/utils/schema.d.ts +++ b/packages/js/src/utils/schema.d.ts @@ -47,6 +47,7 @@ export interface ExecutorOptions { buildableProjectDepsInPackageJsonType?: 'dependencies' | 'peerDependencies'; external?: 'all' | 'none' | string[]; externalBuildTargets?: string[]; + generateLockfile?: boolean; } export interface NormalizedExecutorOptions extends ExecutorOptions {