fix(core): eslint workspaces should not contain codelyzer (#4529)

This commit is contained in:
James Henry 2021-01-26 01:54:03 +04:00 committed by GitHub
parent f25776d903
commit d0d7cf4a8c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 52 additions and 24 deletions

View File

@ -28,7 +28,9 @@ describe('init', () => {
expect(devDependencies['@angular/compiler-cli']).toBeDefined(); expect(devDependencies['@angular/compiler-cli']).toBeDefined();
expect(devDependencies['@angular/language-service']).toBeDefined(); expect(devDependencies['@angular/language-service']).toBeDefined();
expect(devDependencies['@angular-devkit/build-angular']).toBeDefined(); expect(devDependencies['@angular-devkit/build-angular']).toBeDefined();
expect(devDependencies['codelyzer']).toBeDefined();
// codelyzer should no longer be there by default
expect(devDependencies['codelyzer']).toBeUndefined();
}); });
it('should add a postinstall script for ngcc', async () => { it('should add a postinstall script for ngcc', async () => {
@ -208,6 +210,22 @@ describe('init', () => {
}); });
}); });
describe('--linter', () => {
describe('tslint', () => {
it('should add codelyzer', async () => {
const tree = await runSchematic(
'init',
{
linter: 'tslint',
},
appTree
);
const { devDependencies } = readJsonInTree(tree, 'package.json');
expect(devDependencies['codelyzer']).toBeDefined();
});
});
});
describe('defaultCollection', () => { describe('defaultCollection', () => {
it('should be set if none was set before', async () => { it('should be set if none was set before', async () => {
const result = await runSchematic('init', {}, appTree); const result = await runSchematic('init', {}, appTree);

View File

@ -13,6 +13,7 @@ import {
setDefaultCollection, setDefaultCollection,
updateJsonInTree, updateJsonInTree,
updateWorkspace, updateWorkspace,
Linter,
} from '@nrwl/workspace'; } from '@nrwl/workspace';
import { import {
angularDevkitVersion, angularDevkitVersion,
@ -22,29 +23,29 @@ import {
} from '../../utils/versions'; } from '../../utils/versions';
import { Schema } from './schema'; import { Schema } from './schema';
import { E2eTestRunner, UnitTestRunner } from '../../utils/test-runners'; import { E2eTestRunner, UnitTestRunner } from '../../utils/test-runners';
import { stripIndents } from '@angular-devkit/core/src/utils/literals';
const updateDependencies = addDepsToPackageJson( const updateDependencies = (options: Pick<Schema, 'linter'>): Rule =>
{ addDepsToPackageJson(
'@angular/animations': angularVersion, {
'@angular/common': angularVersion, '@angular/animations': angularVersion,
'@angular/compiler': angularVersion, '@angular/common': angularVersion,
'@angular/core': angularVersion, '@angular/compiler': angularVersion,
'@angular/forms': angularVersion, '@angular/core': angularVersion,
'@angular/platform-browser': angularVersion, '@angular/forms': angularVersion,
'@angular/platform-browser-dynamic': angularVersion, '@angular/platform-browser': angularVersion,
'@angular/router': angularVersion, '@angular/platform-browser-dynamic': angularVersion,
rxjs: rxjsVersion, '@angular/router': angularVersion,
tslib: '^2.0.0', rxjs: rxjsVersion,
'zone.js': '^0.10.2', tslib: '^2.0.0',
}, 'zone.js': '^0.10.2',
{ },
'@angular/compiler-cli': angularVersion, {
'@angular/language-service': angularVersion, '@angular/compiler-cli': angularVersion,
'@angular-devkit/build-angular': angularDevkitVersion, '@angular/language-service': angularVersion,
codelyzer: '^6.0.0', '@angular-devkit/build-angular': angularDevkitVersion,
} codelyzer: options.linter === Linter.TsLint ? '^6.0.0' : undefined,
); }
);
export function addUnitTestRunner( export function addUnitTestRunner(
options: Pick<Schema, 'unitTestRunner'> options: Pick<Schema, 'unitTestRunner'>
@ -168,7 +169,7 @@ export default function (options: Schema): Rule {
setDefaults(options), setDefaults(options),
// TODO: Remove this when ngcc can be run in parallel // TODO: Remove this when ngcc can be run in parallel
addPostinstall(), addPostinstall(),
updateDependencies, updateDependencies(options),
addUnitTestRunner(options), addUnitTestRunner(options),
addE2eTestRunner(options), addE2eTestRunner(options),
formatFiles(), formatFiles(),

View File

@ -1,8 +1,11 @@
import { E2eTestRunner, UnitTestRunner } from '../../utils/test-runners'; import { E2eTestRunner, UnitTestRunner } from '../../utils/test-runners';
import { Linter } from '@nrwl/workspace';
export interface Schema { export interface Schema {
unitTestRunner: UnitTestRunner; unitTestRunner: UnitTestRunner;
e2eTestRunner?: E2eTestRunner; e2eTestRunner?: E2eTestRunner;
skipFormat: boolean; skipFormat: boolean;
skipInstall?: boolean; skipInstall?: boolean;
style?: string; style?: string;
linter: Linter;
} }

View File

@ -26,6 +26,12 @@
"description": "Skip formatting files", "description": "Skip formatting files",
"type": "boolean", "type": "boolean",
"default": false "default": false
},
"linter": {
"description": "The tool to use for running lint checks.",
"type": "string",
"enum": ["tslint", "eslint"],
"default": "eslint"
} }
} }
} }