fix(linter): create-package-json should omit non-npm and ignored packages (#17883)

This commit is contained in:
Miroslav Jonaš 2023-06-30 22:00:45 +02:00 committed by GitHub
parent 576262bb03
commit 3d77b4d40e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 1 deletions

View File

@ -45,7 +45,7 @@ export default createESLintRule<Options, MessageIds>({
type: 'object', type: 'object',
properties: { properties: {
buildTargets: [{ type: 'string' }], buildTargets: [{ type: 'string' }],
ignoreDependencies: [{ type: 'string' }], ignoredDependencies: [{ type: 'string' }],
checkMissingDependencies: { type: 'boolean' }, checkMissingDependencies: { type: 'boolean' },
checkObsoleteDependencies: { type: 'boolean' }, checkObsoleteDependencies: { type: 'boolean' },
checkVersionMismatches: { type: 'boolean' }, checkVersionMismatches: { type: 'boolean' },

View File

@ -181,6 +181,7 @@ export function findProjectsNpmDependencies(
target: string, target: string,
options: { options: {
helperDependencies?: string[]; helperDependencies?: string[];
ignoredDependencies?: string[];
}, },
fileMap?: ProjectFileMap fileMap?: ProjectFileMap
): NpmDeps { ): NpmDeps {
@ -213,6 +214,7 @@ export function findProjectsNpmDependencies(
graph, graph,
npmDeps, npmDeps,
seen, seen,
options.ignoredDependencies || [],
dependencyInputs, dependencyInputs,
selfInputs selfInputs
); );
@ -226,6 +228,7 @@ function findAllNpmDeps(
graph: ProjectGraph, graph: ProjectGraph,
npmDeps: NpmDeps, npmDeps: NpmDeps,
seen: Set<string>, seen: Set<string>,
ignoredDependencies: string[],
dependencyPatterns: string[], dependencyPatterns: string[],
rootPatterns?: string[] rootPatterns?: string[]
): void { ): void {
@ -260,6 +263,14 @@ function findAllNpmDeps(
} else { } else {
if (node) { if (node) {
seen.add(dep); seen.add(dep);
// do not add ignored dependencies to the list or non-npm dependencies
if (
ignoredDependencies.includes(node.data.packageName) ||
node.type !== 'npm'
) {
continue;
}
npmDeps.dependencies[node.data.packageName] = node.data.version; npmDeps.dependencies[node.data.packageName] = node.data.version;
recursivelyCollectPeerDependencies(node.name, graph, npmDeps, seen); recursivelyCollectPeerDependencies(node.name, graph, npmDeps, seen);
} else if (graph.nodes[dep]) { } else if (graph.nodes[dep]) {
@ -269,6 +280,7 @@ function findAllNpmDeps(
graph, graph,
npmDeps, npmDeps,
seen, seen,
ignoredDependencies,
dependencyPatterns dependencyPatterns
); );
} }