feat(devkit): reexport package manager methods in devkit

This commit is contained in:
Phillip Barta 2021-06-17 11:43:16 +02:00 committed by Jason Jean
parent 632d2f72ae
commit 5e6cf9646b
13 changed files with 200 additions and 119 deletions

View File

@ -60,9 +60,11 @@
- [applyChangesToString](../../angular/nx-devkit/index#applychangestostring) - [applyChangesToString](../../angular/nx-devkit/index#applychangestostring)
- [convertNxExecutor](../../angular/nx-devkit/index#convertnxexecutor) - [convertNxExecutor](../../angular/nx-devkit/index#convertnxexecutor)
- [convertNxGenerator](../../angular/nx-devkit/index#convertnxgenerator) - [convertNxGenerator](../../angular/nx-devkit/index#convertnxgenerator)
- [detectPackageManager](../../angular/nx-devkit/index#detectpackagemanager)
- [formatFiles](../../angular/nx-devkit/index#formatfiles) - [formatFiles](../../angular/nx-devkit/index#formatfiles)
- [generateFiles](../../angular/nx-devkit/index#generatefiles) - [generateFiles](../../angular/nx-devkit/index#generatefiles)
- [getPackageManagerCommand](../../angular/nx-devkit/index#getpackagemanagercommand) - [getPackageManagerCommand](../../angular/nx-devkit/index#getpackagemanagercommand)
- [getPackageManagerVersion](../../angular/nx-devkit/index#getpackagemanagerversion)
- [getProjects](../../angular/nx-devkit/index#getprojects) - [getProjects](../../angular/nx-devkit/index#getprojects)
- [getWorkspaceLayout](../../angular/nx-devkit/index#getworkspacelayout) - [getWorkspaceLayout](../../angular/nx-devkit/index#getworkspacelayout)
- [getWorkspacePath](../../angular/nx-devkit/index#getworkspacepath) - [getWorkspacePath](../../angular/nx-devkit/index#getworkspacepath)
@ -578,6 +580,22 @@ Convert an Nx Generator into an Angular Devkit Schematic
--- ---
### detectPackageManager
**detectPackageManager**(`dir?`: _string_): [_PackageManager_](../../angular/nx-devkit/index#packagemanager)
Detects which package manager is used in the workspace based on the lock file.
#### Parameters
| Name | Type | Default value |
| :---- | :------- | :------------ |
| `dir` | _string_ | '' |
**Returns:** [_PackageManager_](../../angular/nx-devkit/index#packagemanager)
---
### formatFiles ### formatFiles
**formatFiles**(`host`: [_Tree_](../../angular/nx-devkit/index#tree)): _Promise_<void\> **formatFiles**(`host`: [_Tree_](../../angular/nx-devkit/index#tree)): _Promise_<void\>
@ -635,7 +653,7 @@ doesn't get confused about incorrect TypeScript files.
### getPackageManagerCommand ### getPackageManagerCommand
**getPackageManagerCommand**(`packageManager?`: [_PackageManager_](../../angular/nx-devkit/index#packagemanager)): _object_ **getPackageManagerCommand**(`packageManager?`: [_PackageManager_](../../angular/nx-devkit/index#packagemanager)): PackageManagerCommands
Returns commands for the package manager used in the workspace. Returns commands for the package manager used in the workspace.
By default, the package manager is derived based on the lock file, By default, the package manager is derived based on the lock file,
@ -653,17 +671,25 @@ execSync(`${getPackageManagerCommand().addDev} my-dev-package`);
| :--------------- | :--------------------------------------------------------------- | | :--------------- | :--------------------------------------------------------------- |
| `packageManager` | [_PackageManager_](../../angular/nx-devkit/index#packagemanager) | | `packageManager` | [_PackageManager_](../../angular/nx-devkit/index#packagemanager) |
**Returns:** _object_ **Returns:** PackageManagerCommands
---
### getPackageManagerVersion
**getPackageManagerVersion**(`packageManager?`: [_PackageManager_](../../angular/nx-devkit/index#packagemanager)): _string_
Returns the version of the package manager used in the workspace.
By default, the package manager is derived based on the lock file,
but it can also be passed in explicitly.
#### Parameters
| Name | Type | | Name | Type |
| :-------- | :------------------------------------------------- | | :--------------- | :--------------------------------------------------------------- |
| `add` | _string_ | | `packageManager` | [_PackageManager_](../../angular/nx-devkit/index#packagemanager) |
| `addDev` | _string_ |
| `exec` | _string_ | **Returns:** _string_
| `install` | _string_ |
| `list` | _string_ |
| `rm` | _string_ |
| `run` | (`script`: _string_, `args`: _string_) => _string_ |
--- ---

View File

@ -60,9 +60,11 @@
- [applyChangesToString](../../node/nx-devkit/index#applychangestostring) - [applyChangesToString](../../node/nx-devkit/index#applychangestostring)
- [convertNxExecutor](../../node/nx-devkit/index#convertnxexecutor) - [convertNxExecutor](../../node/nx-devkit/index#convertnxexecutor)
- [convertNxGenerator](../../node/nx-devkit/index#convertnxgenerator) - [convertNxGenerator](../../node/nx-devkit/index#convertnxgenerator)
- [detectPackageManager](../../node/nx-devkit/index#detectpackagemanager)
- [formatFiles](../../node/nx-devkit/index#formatfiles) - [formatFiles](../../node/nx-devkit/index#formatfiles)
- [generateFiles](../../node/nx-devkit/index#generatefiles) - [generateFiles](../../node/nx-devkit/index#generatefiles)
- [getPackageManagerCommand](../../node/nx-devkit/index#getpackagemanagercommand) - [getPackageManagerCommand](../../node/nx-devkit/index#getpackagemanagercommand)
- [getPackageManagerVersion](../../node/nx-devkit/index#getpackagemanagerversion)
- [getProjects](../../node/nx-devkit/index#getprojects) - [getProjects](../../node/nx-devkit/index#getprojects)
- [getWorkspaceLayout](../../node/nx-devkit/index#getworkspacelayout) - [getWorkspaceLayout](../../node/nx-devkit/index#getworkspacelayout)
- [getWorkspacePath](../../node/nx-devkit/index#getworkspacepath) - [getWorkspacePath](../../node/nx-devkit/index#getworkspacepath)
@ -578,6 +580,22 @@ Convert an Nx Generator into an Angular Devkit Schematic
--- ---
### detectPackageManager
**detectPackageManager**(`dir?`: _string_): [_PackageManager_](../../node/nx-devkit/index#packagemanager)
Detects which package manager is used in the workspace based on the lock file.
#### Parameters
| Name | Type | Default value |
| :---- | :------- | :------------ |
| `dir` | _string_ | '' |
**Returns:** [_PackageManager_](../../node/nx-devkit/index#packagemanager)
---
### formatFiles ### formatFiles
**formatFiles**(`host`: [_Tree_](../../node/nx-devkit/index#tree)): _Promise_<void\> **formatFiles**(`host`: [_Tree_](../../node/nx-devkit/index#tree)): _Promise_<void\>
@ -635,7 +653,7 @@ doesn't get confused about incorrect TypeScript files.
### getPackageManagerCommand ### getPackageManagerCommand
**getPackageManagerCommand**(`packageManager?`: [_PackageManager_](../../node/nx-devkit/index#packagemanager)): _object_ **getPackageManagerCommand**(`packageManager?`: [_PackageManager_](../../node/nx-devkit/index#packagemanager)): PackageManagerCommands
Returns commands for the package manager used in the workspace. Returns commands for the package manager used in the workspace.
By default, the package manager is derived based on the lock file, By default, the package manager is derived based on the lock file,
@ -653,17 +671,25 @@ execSync(`${getPackageManagerCommand().addDev} my-dev-package`);
| :--------------- | :------------------------------------------------------------ | | :--------------- | :------------------------------------------------------------ |
| `packageManager` | [_PackageManager_](../../node/nx-devkit/index#packagemanager) | | `packageManager` | [_PackageManager_](../../node/nx-devkit/index#packagemanager) |
**Returns:** _object_ **Returns:** PackageManagerCommands
---
### getPackageManagerVersion
**getPackageManagerVersion**(`packageManager?`: [_PackageManager_](../../node/nx-devkit/index#packagemanager)): _string_
Returns the version of the package manager used in the workspace.
By default, the package manager is derived based on the lock file,
but it can also be passed in explicitly.
#### Parameters
| Name | Type | | Name | Type |
| :-------- | :------------------------------------------------- | | :--------------- | :------------------------------------------------------------ |
| `add` | _string_ | | `packageManager` | [_PackageManager_](../../node/nx-devkit/index#packagemanager) |
| `addDev` | _string_ |
| `exec` | _string_ | **Returns:** _string_
| `install` | _string_ |
| `list` | _string_ |
| `rm` | _string_ |
| `run` | (`script`: _string_, `args`: _string_) => _string_ |
--- ---

View File

@ -60,9 +60,11 @@
- [applyChangesToString](../../react/nx-devkit/index#applychangestostring) - [applyChangesToString](../../react/nx-devkit/index#applychangestostring)
- [convertNxExecutor](../../react/nx-devkit/index#convertnxexecutor) - [convertNxExecutor](../../react/nx-devkit/index#convertnxexecutor)
- [convertNxGenerator](../../react/nx-devkit/index#convertnxgenerator) - [convertNxGenerator](../../react/nx-devkit/index#convertnxgenerator)
- [detectPackageManager](../../react/nx-devkit/index#detectpackagemanager)
- [formatFiles](../../react/nx-devkit/index#formatfiles) - [formatFiles](../../react/nx-devkit/index#formatfiles)
- [generateFiles](../../react/nx-devkit/index#generatefiles) - [generateFiles](../../react/nx-devkit/index#generatefiles)
- [getPackageManagerCommand](../../react/nx-devkit/index#getpackagemanagercommand) - [getPackageManagerCommand](../../react/nx-devkit/index#getpackagemanagercommand)
- [getPackageManagerVersion](../../react/nx-devkit/index#getpackagemanagerversion)
- [getProjects](../../react/nx-devkit/index#getprojects) - [getProjects](../../react/nx-devkit/index#getprojects)
- [getWorkspaceLayout](../../react/nx-devkit/index#getworkspacelayout) - [getWorkspaceLayout](../../react/nx-devkit/index#getworkspacelayout)
- [getWorkspacePath](../../react/nx-devkit/index#getworkspacepath) - [getWorkspacePath](../../react/nx-devkit/index#getworkspacepath)
@ -578,6 +580,22 @@ Convert an Nx Generator into an Angular Devkit Schematic
--- ---
### detectPackageManager
**detectPackageManager**(`dir?`: _string_): [_PackageManager_](../../react/nx-devkit/index#packagemanager)
Detects which package manager is used in the workspace based on the lock file.
#### Parameters
| Name | Type | Default value |
| :---- | :------- | :------------ |
| `dir` | _string_ | '' |
**Returns:** [_PackageManager_](../../react/nx-devkit/index#packagemanager)
---
### formatFiles ### formatFiles
**formatFiles**(`host`: [_Tree_](../../react/nx-devkit/index#tree)): _Promise_<void\> **formatFiles**(`host`: [_Tree_](../../react/nx-devkit/index#tree)): _Promise_<void\>
@ -635,7 +653,7 @@ doesn't get confused about incorrect TypeScript files.
### getPackageManagerCommand ### getPackageManagerCommand
**getPackageManagerCommand**(`packageManager?`: [_PackageManager_](../../react/nx-devkit/index#packagemanager)): _object_ **getPackageManagerCommand**(`packageManager?`: [_PackageManager_](../../react/nx-devkit/index#packagemanager)): PackageManagerCommands
Returns commands for the package manager used in the workspace. Returns commands for the package manager used in the workspace.
By default, the package manager is derived based on the lock file, By default, the package manager is derived based on the lock file,
@ -653,17 +671,25 @@ execSync(`${getPackageManagerCommand().addDev} my-dev-package`);
| :--------------- | :------------------------------------------------------------- | | :--------------- | :------------------------------------------------------------- |
| `packageManager` | [_PackageManager_](../../react/nx-devkit/index#packagemanager) | | `packageManager` | [_PackageManager_](../../react/nx-devkit/index#packagemanager) |
**Returns:** _object_ **Returns:** PackageManagerCommands
---
### getPackageManagerVersion
**getPackageManagerVersion**(`packageManager?`: [_PackageManager_](../../react/nx-devkit/index#packagemanager)): _string_
Returns the version of the package manager used in the workspace.
By default, the package manager is derived based on the lock file,
but it can also be passed in explicitly.
#### Parameters
| Name | Type | | Name | Type |
| :-------- | :------------------------------------------------- | | :--------------- | :------------------------------------------------------------- |
| `add` | _string_ | | `packageManager` | [_PackageManager_](../../react/nx-devkit/index#packagemanager) |
| `addDev` | _string_ |
| `exec` | _string_ | **Returns:** _string_
| `install` | _string_ |
| `list` | _string_ |
| `rm` | _string_ |
| `run` | (`script`: _string_, `args`: _string_) => _string_ |
--- ---

View File

@ -20,7 +20,11 @@ export type {
} from '@nrwl/tao/src/shared/nx'; } from '@nrwl/tao/src/shared/nx';
export { logger } from '@nrwl/tao/src/shared/logger'; export { logger } from '@nrwl/tao/src/shared/logger';
export type { PackageManager } from '@nrwl/tao/src/shared/package-manager'; export type { PackageManager } from '@nrwl/tao/src/shared/package-manager';
export { getPackageManagerCommand } from '@nrwl/tao/src/shared/package-manager'; export {
getPackageManagerCommand,
detectPackageManager,
getPackageManagerVersion,
} from '@nrwl/tao/src/shared/package-manager';
export type { Target } from '@nrwl/tao/src/commands/run'; export type { Target } from '@nrwl/tao/src/commands/run';
export { runExecutor } from '@nrwl/tao/src/commands/run'; export { runExecutor } from '@nrwl/tao/src/commands/run';

View File

@ -6,11 +6,7 @@ import { gt, lte } from 'semver';
import { dirSync } from 'tmp'; import { dirSync } from 'tmp';
import { logger } from '../shared/logger'; import { logger } from '../shared/logger';
import { convertToCamelCase, handleErrors } from '../shared/params'; import { convertToCamelCase, handleErrors } from '../shared/params';
import { import { getPackageManagerCommand } from '../shared/package-manager';
detectPackageManager,
getPackageManagerCommand,
PackageManager,
} from '../shared/package-manager';
import { FsTree } from '../shared/tree'; import { FsTree } from '../shared/tree';
import { flushChanges } from './generate'; import { flushChanges } from './generate';
import { import {
@ -424,7 +420,7 @@ function versions(root: string, from: { [p: string]: string }) {
} }
// testing-fetch-start // testing-fetch-start
function createFetcher(packageManager: PackageManager) { function createFetcher() {
const cache = {}; const cache = {};
return async function f( return async function f(
packageName: string, packageName: string,
@ -433,7 +429,7 @@ function createFetcher(packageManager: PackageManager) {
if (!cache[`${packageName}-${packageVersion}`]) { if (!cache[`${packageName}-${packageVersion}`]) {
const dir = dirSync().name; const dir = dirSync().name;
logger.info(`Fetching ${packageName}@${packageVersion}`); logger.info(`Fetching ${packageName}@${packageVersion}`);
const pmc = getPackageManagerCommand(packageManager); const pmc = getPackageManagerCommand();
execSync(`${pmc.add} ${packageName}@${packageVersion}`, { execSync(`${pmc.add} ${packageName}@${packageVersion}`, {
stdio: [], stdio: [],
cwd: dir, cwd: dir,
@ -539,14 +535,13 @@ async function generateMigrationsJsonAndUpdatePackageJson(
to: { [p: string]: string }; to: { [p: string]: string };
} }
) { ) {
const packageManager = detectPackageManager(); const pmc = getPackageManagerCommand();
const pmc = getPackageManagerCommand(packageManager);
try { try {
logger.info(`Fetching meta data about packages.`); logger.info(`Fetching meta data about packages.`);
logger.info(`It may take a few minutes.`); logger.info(`It may take a few minutes.`);
const migrator = new Migrator({ const migrator = new Migrator({
versions: versions(root, opts.from), versions: versions(root, opts.from),
fetch: createFetcher(packageManager), fetch: createFetcher(),
from: opts.from, from: opts.from,
to: opts.to, to: opts.to,
}); });
@ -611,7 +606,7 @@ function installAngularDevkitIfNecessaryToExecuteLegacyMigrations(
); );
if (!hasAngularDevkitMigrations) return false; if (!hasAngularDevkitMigrations) return false;
const pmCommands = getPackageManagerCommand(detectPackageManager()); const pmCommands = getPackageManagerCommand();
const devkitInstalled = const devkitInstalled =
execSync(`${pmCommands.list} @angular-devkit/schematics`) execSync(`${pmCommands.list} @angular-devkit/schematics`)
.toString() .toString()
@ -630,13 +625,13 @@ function installAngularDevkitIfNecessaryToExecuteLegacyMigrations(
} }
function removeAngularDevkitMigrations() { function removeAngularDevkitMigrations() {
const pmCommands = getPackageManagerCommand(detectPackageManager()); const pmCommands = getPackageManagerCommand();
execSync(`${pmCommands.rm} @angular-devkit/schematics`); execSync(`${pmCommands.rm} @angular-devkit/schematics`);
execSync(`${pmCommands.rm} @angular-devkit/core`); execSync(`${pmCommands.rm} @angular-devkit/core`);
} }
function runInstall() { function runInstall() {
const pmCommands = getPackageManagerCommand(detectPackageManager()); const pmCommands = getPackageManagerCommand();
logger.info( logger.info(
`NX Running '${pmCommands.install}' to make sure necessary packages are installed` `NX Running '${pmCommands.install}' to make sure necessary packages are installed`
); );

View File

@ -22,7 +22,7 @@ import {
toNewFormatOrNull, toNewFormatOrNull,
toOldFormatOrNull, toOldFormatOrNull,
workspaceConfigName, workspaceConfigName,
} from '@nrwl/tao/src/shared/workspace'; } from '../shared/workspace';
import { dirname, extname, resolve, join } from 'path'; import { dirname, extname, resolve, join } from 'path';
import { FileBuffer } from '@angular-devkit/core/src/virtual-fs/host/interface'; import { FileBuffer } from '@angular-devkit/core/src/virtual-fs/host/interface';
import { EMPTY, Observable, of, concat } from 'rxjs'; import { EMPTY, Observable, of, concat } from 'rxjs';

View File

@ -4,6 +4,19 @@ import { join } from 'path';
export type PackageManager = 'yarn' | 'pnpm' | 'npm'; export type PackageManager = 'yarn' | 'pnpm' | 'npm';
export interface PackageManagerCommands {
install: string;
add: string;
addDev: string;
rm: string;
exec: string;
list: string;
run: (script: string, args: string) => string;
}
/**
* Detects which package manager is used in the workspace based on the lock file.
*/
export function detectPackageManager(dir: string = ''): PackageManager { export function detectPackageManager(dir: string = ''): PackageManager {
return existsSync(join(dir, 'yarn.lock')) return existsSync(join(dir, 'yarn.lock'))
? 'yarn' ? 'yarn'
@ -22,22 +35,12 @@ export function detectPackageManager(dir: string = ''): PackageManager {
* ```javascript * ```javascript
* execSync(`${getPackageManagerCommand().addDev} my-dev-package`); * execSync(`${getPackageManagerCommand().addDev} my-dev-package`);
* ``` * ```
*
*/ */
export function getPackageManagerCommand( export function getPackageManagerCommand(
packageManager: PackageManager = detectPackageManager() packageManager: PackageManager = detectPackageManager()
): { ): PackageManagerCommands {
install: string; const commands: { [pm in PackageManager]: () => PackageManagerCommands } = {
add: string; yarn: () => ({
addDev: string;
rm: string;
exec: string;
list: string;
run: (script: string, args: string) => string;
} {
switch (packageManager) {
case 'yarn':
return {
install: 'yarn', install: 'yarn',
add: 'yarn add', add: 'yarn add',
addDev: 'yarn add -D', addDev: 'yarn add -D',
@ -45,10 +48,8 @@ export function getPackageManagerCommand(
exec: 'yarn', exec: 'yarn',
run: (script: string, args: string) => `yarn ${script} ${args}`, run: (script: string, args: string) => `yarn ${script} ${args}`,
list: 'yarn list', list: 'yarn list',
}; }),
pnpm: () => ({
case 'pnpm':
return {
install: 'pnpm install --no-frozen-lockfile', // explicitly disable in case of CI install: 'pnpm install --no-frozen-lockfile', // explicitly disable in case of CI
add: 'pnpm add', add: 'pnpm add',
addDev: 'pnpm add -D', addDev: 'pnpm add -D',
@ -56,11 +57,10 @@ export function getPackageManagerCommand(
exec: 'pnpx', exec: 'pnpx',
run: (script: string, args: string) => `pnpm run ${script} -- ${args}`, run: (script: string, args: string) => `pnpm run ${script} -- ${args}`,
list: 'pnpm ls --depth 100', list: 'pnpm ls --depth 100',
}; }),
npm: () => {
process.env.npm_config_legacy_peer_deps ??= 'true';
case 'npm':
process.env.npm_config_legacy_peer_deps =
process.env.npm_config_legacy_peer_deps ?? 'true';
return { return {
install: 'npm install', install: 'npm install',
add: 'npm install', add: 'npm install',
@ -70,11 +70,19 @@ export function getPackageManagerCommand(
run: (script: string, args: string) => `npm run ${script} -- ${args}`, run: (script: string, args: string) => `npm run ${script} -- ${args}`,
list: 'npm ls', list: 'npm ls',
}; };
} },
};
return commands[packageManager]();
} }
/**
* Returns the version of the package manager used in the workspace.
* By default, the package manager is derived based on the lock file,
* but it can also be passed in explicitly.
*/
export function getPackageManagerVersion( export function getPackageManagerVersion(
packageManager: PackageManager packageManager: PackageManager = detectPackageManager()
): string { ): string {
return execSync(`${packageManager} --version`).toString('utf-8').trim(); return execSync(`${packageManager} --version`).toString('utf-8').trim();
} }

View File

@ -1,6 +1,6 @@
import { readNxJson } from '../core/file-utils'; import { readNxJson } from '../core/file-utils';
import { output } from '../utilities/output'; import { output } from '../utilities/output';
import { getPackageManagerCommand } from '@nrwl/tao/src/shared/package-manager'; import { getPackageManagerCommand } from '@nrwl/devkit';
import { execSync } from 'child_process'; import { execSync } from 'child_process';
export async function connectToNxCloudUsingScan(scan: boolean): Promise<void> { export async function connectToNxCloudUsingScan(scan: boolean): Promise<void> {

View File

@ -1,8 +1,7 @@
import { execSync } from 'child_process'; import { execSync } from 'child_process';
import { getPackageManagerCommand } from '@nrwl/tao/src/shared/package-manager'; import { getPackageManagerCommand, writeJsonFile } from '@nrwl/devkit';
import * as yargs from 'yargs'; import * as yargs from 'yargs';
import { nxVersion } from '../utils/versions'; import { nxVersion } from '../utils/versions';
import { writeFileSync } from 'fs';
import * as path from 'path'; import * as path from 'path';
const noop = (yargs: yargs.Argv): yargs.Argv => yargs; const noop = (yargs: yargs.Argv): yargs.Argv => yargs;
@ -445,9 +444,7 @@ function taoPath() {
const { dirSync } = require('tmp'); const { dirSync } = require('tmp');
const tmpDir = dirSync().name; const tmpDir = dirSync().name;
writeFileSync( writeJsonFile(path.join(tmpDir, 'package.json'), {
path.join(tmpDir, 'package.json'),
JSON.stringify({
dependencies: { dependencies: {
'@nrwl/tao': 'latest', '@nrwl/tao': 'latest',
@ -457,8 +454,7 @@ function taoPath() {
'@angular-devkit/core': 'latest', '@angular-devkit/core': 'latest',
}, },
license: 'MIT', license: 'MIT',
}) });
);
execSync(packageManager.install, { execSync(packageManager.install, {
cwd: tmpDir, cwd: tmpDir,

View File

@ -1,9 +1,11 @@
import * as chalk from 'chalk'; import * as chalk from 'chalk';
import { execSync } from 'child_process';
import { appRootPath } from '../utilities/app-root'; import { appRootPath } from '../utilities/app-root';
import { detectPackageManager } from '@nrwl/tao/src/shared/package-manager'; import {
detectPackageManager,
getPackageManagerVersion,
readJsonFile,
} from '@nrwl/devkit';
import { output } from '../utilities/output'; import { output } from '../utilities/output';
import { readJsonFile } from '../utilities/fileutils';
export const packagesWeCareAbout = [ export const packagesWeCareAbout = [
'nx', 'nx',
@ -45,7 +47,7 @@ export const report = {
*/ */
function reportHandler() { function reportHandler() {
const pm = detectPackageManager(); const pm = detectPackageManager();
const pmVersion = execSync(`${pm} --version`).toString('utf-8').trim(); const pmVersion = getPackageManagerVersion(pm);
const bodyLines = [ const bodyLines = [
`Node : ${process.versions.node}`, `Node : ${process.versions.node}`,

View File

@ -5,19 +5,18 @@ import { copySync, removeSync } from 'fs-extra';
import * as path from 'path'; import * as path from 'path';
import * as yargsParser from 'yargs-parser'; import * as yargsParser from 'yargs-parser';
import { appRootPath } from '../utilities/app-root'; import { appRootPath } from '../utilities/app-root';
import { import { fileExists } from '../utilities/fileutils';
detectPackageManager,
getPackageManagerCommand,
} from '@nrwl/tao/src/shared/package-manager';
import {
fileExists,
readJsonFile,
writeJsonFile,
} from '../utilities/fileutils';
import { output } from '../utilities/output'; import { output } from '../utilities/output';
import type { CompilerOptions } from 'typescript'; import type { CompilerOptions } from 'typescript';
import { Workspaces } from '@nrwl/tao/src/shared/workspace'; import { Workspaces } from '@nrwl/tao/src/shared/workspace';
import { logger, normalizePath } from '@nrwl/devkit'; import {
logger,
normalizePath,
getPackageManagerCommand,
detectPackageManager,
readJsonFile,
writeJsonFile,
} from '@nrwl/devkit';
import { generate } from '@nrwl/tao/src/commands/generate'; import { generate } from '@nrwl/tao/src/commands/generate';
const rootDirectory = appRootPath; const rootDirectory = appRootPath;

View File

@ -1,6 +1,6 @@
import { execSync } from 'child_process'; import { execSync } from 'child_process';
import { getPackageManagerCommand } from '@nrwl/tao/src/shared/package-manager'; import { getPackageManagerCommand } from '@nrwl/devkit';
import { ExecutorContext } from '@nrwl/devkit'; import type { ExecutorContext } from '@nrwl/devkit';
import * as path from 'path'; import * as path from 'path';
export interface RunScriptOptions { export interface RunScriptOptions {

View File

@ -1,7 +1,6 @@
import * as chalk from 'chalk'; import * as chalk from 'chalk';
import { getPackageManagerCommand } from '@nrwl/tao/src/shared/package-manager'; import { getPackageManagerCommand, readJsonFile } from '@nrwl/devkit';
import { appRootPath } from '../app-root'; import { appRootPath } from '../app-root';
import { readJsonFile } from '../fileutils';
import { output } from '../output'; import { output } from '../output';
import type { PluginCapabilities } from './models'; import type { PluginCapabilities } from './models';
import { hasElements } from './shared'; import { hasElements } from './shared';