Revert "feat(core): update to next version of angular deps"

This reverts commit bd230e0530e690b2ae7896a876510f62002943c8.
This commit is contained in:
Victor Savkin 2019-12-10 07:46:41 -05:00 committed by Victor Savkin
parent 5229529e03
commit f816fc424d
53 changed files with 2540 additions and 2875 deletions

View File

@ -52,11 +52,11 @@ Test runner to use for end to end (e2e) tests
### enableIvy ### enableIvy
Default: `true` Default: `false`
Type: `boolean` Type: `boolean`
Create a new app that uses the Ivy rendering engine. **EXPERIMENTAL** True to create a new app that uses the Ivy rendering engine.
### inlineStyle ### inlineStyle

View File

@ -52,11 +52,11 @@ Test runner to use for end to end (e2e) tests
### enableIvy ### enableIvy
Default: `true` Default: `false`
Type: `boolean` Type: `boolean`
Create a new app that uses the Ivy rendering engine. **EXPERIMENTAL** True to create a new app that uses the Ivy rendering engine.
### inlineStyle ### inlineStyle

View File

@ -52,11 +52,11 @@ Test runner to use for end to end (e2e) tests
### enableIvy ### enableIvy
Default: `true` Default: `false`
Type: `boolean` Type: `boolean`
Create a new app that uses the Ivy rendering engine. **EXPERIMENTAL** True to create a new app that uses the Ivy rendering engine.
### inlineStyle ### inlineStyle

View File

@ -63,13 +63,13 @@ forEachCli(() => {
console.log( console.log(
`The current es2015 bundle size is ${es2015BundleSize / 1000} KB` `The current es2015 bundle size is ${es2015BundleSize / 1000} KB`
); );
expect(es2015BundleSize).toBeLessThanOrEqual(125000); expect(es2015BundleSize).toBeLessThanOrEqual(160000);
const es5BundleSize = getSize( const es5BundleSize = getSize(
tmpProjPath(`dist/apps/my-dir/${myapp}/main-es5.js`) tmpProjPath(`dist/apps/my-dir/${myapp}/main-es5.js`)
); );
console.log(`The current es5 bundle size is ${es5BundleSize / 1000} KB`); console.log(`The current es5 bundle size is ${es5BundleSize / 1000} KB`);
expect(es5BundleSize).toBeLessThanOrEqual(150000); expect(es5BundleSize).toBeLessThanOrEqual(175000);
// running tests for the app // running tests for the app
expectTestsPass(await runCLIAsync(`test my-dir-${myapp} --no-watch`)); expectTestsPass(await runCLIAsync(`test my-dir-${myapp} --no-watch`));

View File

@ -1,4 +1,4 @@
import { stringUtils } from '@nrwl/workspace'; import { capitalize } from '@nrwl/workspace/src/utils/strings';
import * as http from 'http'; import * as http from 'http';
import { import {
checkFilesExist, checkFilesExist,
@ -61,9 +61,7 @@ module.exports = {
` `
import dynamic from 'next/dynamic'; import dynamic from 'next/dynamic';
const DynamicComponent = dynamic( const DynamicComponent = dynamic(
() => import('@proj/${libName}').then(d => d.${stringUtils.capitalize( () => import('@proj/${libName}').then(d => d.${capitalize(libName)})
libName
)})
); );
` + readFile(mainPath) ` + readFile(mainPath)
); );

View File

@ -132,7 +132,7 @@ forEachCli('angular', () => {
expect(updatedAngularCLIJson.projects.proj.architect.build).toEqual({ expect(updatedAngularCLIJson.projects.proj.architect.build).toEqual({
builder: '@angular-devkit/build-angular:browser', builder: '@angular-devkit/build-angular:browser',
options: { options: {
aot: true, aot: false,
outputPath: 'dist/apps/proj', outputPath: 'dist/apps/proj',
index: 'apps/proj/src/index.html', index: 'apps/proj/src/index.html',
main: 'apps/proj/src/main.ts', main: 'apps/proj/src/main.ts',
@ -167,6 +167,7 @@ forEachCli('angular', () => {
sourceMap: false, sourceMap: false,
extractCss: true, extractCss: true,
namedChunks: false, namedChunks: false,
aot: true,
extractLicenses: true, extractLicenses: true,
vendorChunk: false, vendorChunk: false,
buildOptimizer: true buildOptimizer: true

View File

@ -128,7 +128,7 @@ forEachCli(currentCLIName => {
done(); done();
}); });
}); });
}, 120000); }, 60000);
it('should have correct ts options for nest application', async () => { it('should have correct ts options for nest application', async () => {
if (currentCLIName === 'angular') { if (currentCLIName === 'angular') {
@ -157,7 +157,7 @@ forEachCli(currentCLIName => {
); // respects "extends" inside tsconfigs ); // respects "extends" inside tsconfigs
expect(config.options.emitDecoratorMetadata).toEqual(true); // required by nest to function properly expect(config.options.emitDecoratorMetadata).toEqual(true); // required by nest to function properly
}, 120000); }, 60000);
it('should be able to generate a nest application', async done => { it('should be able to generate a nest application', async done => {
ensureProject(); ensureProject();
@ -221,7 +221,7 @@ forEachCli(currentCLIName => {
done(); done();
}); });
}); });
}, 120000); }, 60000);
it('should be able to generate an empty application', async () => { it('should be able to generate an empty application', async () => {
ensureProject(); ensureProject();
@ -242,6 +242,6 @@ forEachCli(currentCLIName => {
cwd: tmpProjPath() cwd: tmpProjPath()
}).toString(); }).toString();
expect(result).toContain('Hello World!'); expect(result).toContain('Hello World!');
}, 120000); }, 60000);
}); });
}); });

View File

@ -1,4 +1,4 @@
import { packagesWeCareAbout } from '../packages/workspace/src/command-line/report'; import { packagesWeCareAbout } from '@nrwl/workspace/src/command-line/report';
import { ensureProject, forEachCli, runCommand } from './utils'; import { ensureProject, forEachCli, runCommand } from './utils';
const testTimeout = 120000; const testTimeout = 120000;

View File

@ -83,17 +83,6 @@ export function runYarnInstall(silent: boolean = true) {
return install ? install.toString() : ''; return install ? install.toString() : '';
} }
export function runNgcc(silent: boolean = true) {
const install = execSync(
'node ./node_modules/@angular/compiler-cli/ngcc/main-ngcc.js',
{
cwd: tmpProjPath(),
...(silent ? { stdio: ['ignore', 'ignore', 'ignore'] } : {})
}
);
return install ? install.toString() : '';
}
/** /**
* Run the `new` command for the currently selected CLI * Run the `new` command for the currently selected CLI
* *
@ -160,8 +149,6 @@ function default_1(factoryOptions = {}) {
exports.default = default_1;` exports.default = default_1;`
); );
runNgcc();
execSync(`mv ${tmpProjPath()} ${tmpBackupProjPath()}`); execSync(`mv ${tmpProjPath()} ${tmpBackupProjPath()}`);
} }
execSync(`cp -a ${tmpBackupProjPath()} ${tmpProjPath()}`); execSync(`cp -a ${tmpBackupProjPath()} ${tmpProjPath()}`);
@ -251,7 +238,6 @@ export function copyMissingPackages(): void {
'document-register-element', 'document-register-element',
'@angular/forms', '@angular/forms',
'@storybook',
// For web builder with inlined build-angular // For web builder with inlined build-angular
'source-map', 'source-map',

View File

@ -27,25 +27,25 @@
}, },
"devDependencies": { "devDependencies": {
"axios": "^0.19.0", "axios": "^0.19.0",
"@angular-devkit/architect": "0.900.0-rc.5", "@angular-devkit/architect": "0.803.14",
"@angular-devkit/build-angular": "0.900.0-rc.5", "@angular-devkit/build-angular": "0.803.14",
"@angular-devkit/build-ng-packagr": "0.900.0-rc.5", "@angular-devkit/build-ng-packagr": "0.803.14",
"@angular-devkit/build-optimizer": "0.900.0-rc.5", "@angular-devkit/build-optimizer": "0.803.14",
"@angular-devkit/build-webpack": "0.900.0-rc.5", "@angular-devkit/build-webpack": "0.803.14",
"@angular-devkit/core": "9.0.0-rc.5", "@angular-devkit/core": "8.3.14",
"@angular-devkit/schematics": "9.0.0-rc.5", "@angular-devkit/schematics": "8.3.14",
"@angular-eslint/builder": "0.0.1-alpha.17", "@angular-eslint/builder": "0.0.1-alpha.17",
"@angular/cli": "9.0.0-rc.5", "@angular/cli": "8.3.14",
"@angular/common": "9.0.0-rc.5", "@angular/common": "^8.2.12",
"@angular/compiler": "9.0.0-rc.5", "@angular/compiler": "^8.2.12",
"@angular/compiler-cli": "9.0.0-rc.5", "@angular/compiler-cli": "^8.2.12",
"@angular/core": "9.0.0-rc.5", "@angular/core": "^8.2.12",
"@angular/forms": "9.0.0-rc.5", "@angular/forms": "^8.2.12",
"@angular/platform-browser": "9.0.0-rc.5", "@angular/platform-browser": "^8.2.12",
"@angular/platform-browser-dynamic": "9.0.0-rc.5", "@angular/platform-browser-dynamic": "^8.2.12",
"@angular/router": "9.0.0-rc.5", "@angular/router": "^8.2.12",
"@angular/service-worker": "9.0.0-rc.5", "@angular/service-worker": "^8.2.12",
"@angular/upgrade": "9.0.0-rc.5", "@angular/upgrade": "^8.2.12",
"@babel/core": "7.5.5", "@babel/core": "7.5.5",
"@babel/plugin-proposal-class-properties": "7.5.5", "@babel/plugin-proposal-class-properties": "7.5.5",
"@babel/plugin-proposal-decorators": "7.4.4", "@babel/plugin-proposal-decorators": "7.4.4",
@ -65,13 +65,13 @@
"@ngrx/schematics": "8.5.0", "@ngrx/schematics": "8.5.0",
"@ngrx/store": "8.5.0", "@ngrx/store": "8.5.0",
"@ngrx/store-devtools": "8.5.0", "@ngrx/store-devtools": "8.5.0",
"@ngtools/webpack": "9.0.0-rc.5", "@ngtools/webpack": "8.3.14",
"@schematics/angular": "9.0.0-rc.5", "@schematics/angular": "8.3.14",
"@testing-library/react": "9.3.0", "@testing-library/react": "9.3.0",
"@storybook/core": "5.3.0-beta.13", "@storybook/core": "^5.2.5",
"@storybook/angular": "5.3.0-beta.13", "@storybook/angular": "^5.2.5",
"@storybook/react": "5.3.0-beta.13", "@storybook/react": "^5.2.5",
"@storybook/addon-knobs": "5.3.0-beta.13", "@storybook/addon-knobs": "^5.2.5",
"@types/express": "4.17.0", "@types/express": "4.17.0",
"@types/fast-levenshtein": "^0.0.1", "@types/fast-levenshtein": "^0.0.1",
"@types/jasmine": "~2.8.6", "@types/jasmine": "~2.8.6",
@ -181,7 +181,7 @@
"rollup-plugin-peer-deps-external": "2.2.0", "rollup-plugin-peer-deps-external": "2.2.0",
"rollup-plugin-postcss": "2.0.3", "rollup-plugin-postcss": "2.0.3",
"rollup-plugin-typescript2": "0.24.3", "rollup-plugin-typescript2": "0.24.3",
"rxjs": "~6.5.3", "rxjs": "~6.4.0",
"sass": "1.22.9", "sass": "1.22.9",
"sass-loader": "7.2.0", "sass-loader": "7.2.0",
"semver": "6.3.0", "semver": "6.3.0",
@ -205,7 +205,7 @@
"tsickle": "^0.37.0", "tsickle": "^0.37.0",
"tslib": "^1.9.3", "tslib": "^1.9.3",
"tslint": "5.11.0", "tslint": "5.11.0",
"typescript": "~3.6.3", "typescript": "~3.5.3",
"webpack": "4.41.2", "webpack": "4.41.2",
"webpack-dev-middleware": "3.7.0", "webpack-dev-middleware": "3.7.0",
"webpack-dev-server": "3.9.0", "webpack-dev-server": "3.9.0",

View File

@ -1,11 +1,5 @@
{ {
"schematics": { "schematics": {
"add-postinstall": {
"version": "0.0.0",
"description": "Adds postinstall to run ngcc",
"factory": "./src/migrations/update-9-0-0/add-postinstall",
"hidden": true
},
"upgrade-ngrx-8-0": { "upgrade-ngrx-8-0": {
"version": "8.3.0-beta.1", "version": "8.3.0-beta.1",
"description": "Upgrades NgRx dependencies to version 8, and runs migrations for breaking changes", "description": "Upgrades NgRx dependencies to version 8, and runs migrations for breaking changes",
@ -15,11 +9,6 @@
"version": "8.5.0-beta.1", "version": "8.5.0-beta.1",
"description": "Upgrades Angular CLI to 8.3.0 and NgRx dependencies to version 8.2", "description": "Upgrades Angular CLI to 8.3.0 and NgRx dependencies to version 8.2",
"factory": "./src/migrations/update-8-5-0/upgrade-cli-8-3" "factory": "./src/migrations/update-8-5-0/upgrade-cli-8-3"
},
"update-9-0-0": {
"version": "9.0.0-beta.1",
"description": "Upgrades Angular and Angular CLI to 9.0.0",
"factory": "./src/migrations/update-9-0-0/update-9-0-0"
} }
} }
} }

View File

@ -37,8 +37,8 @@
"dependencies": { "dependencies": {
"@nrwl/cypress": "*", "@nrwl/cypress": "*",
"@nrwl/jest": "*", "@nrwl/jest": "*",
"@angular-devkit/schematics": "9.0.0-rc.5", "@angular-devkit/schematics": "8.3.14",
"@schematics/angular": "9.0.0-rc.5", "@schematics/angular": "8.3.14",
"jasmine-marbles": "~0.6.0" "jasmine-marbles": "~0.6.0"
} }
} }

View File

@ -5,7 +5,7 @@ import {
UnitTestTree UnitTestTree
} from '@angular-devkit/schematics/testing'; } from '@angular-devkit/schematics/testing';
import { serializeJson } from '@nrwl/workspace'; import { serializeJson } from '@nrwl/workspace';
import { runMigration } from '../../utils/testing'; import { join } from 'path';
describe('Update 8.5.0', () => { describe('Update 8.5.0', () => {
let tree: Tree; let tree: Tree;
@ -13,6 +13,11 @@ describe('Update 8.5.0', () => {
beforeEach(() => { beforeEach(() => {
tree = new UnitTestTree(Tree.empty()); tree = new UnitTestTree(Tree.empty());
schematicRunner = new SchematicTestRunner(
'@nrwl/workspace',
join(__dirname, '../../../migrations.json')
);
}); });
describe('Update Angular CLI', () => { describe('Update Angular CLI', () => {
@ -26,7 +31,9 @@ describe('Update 8.5.0', () => {
}) })
); );
const result = await runMigration('upgrade-cli-8-3', {}, tree); const result = await schematicRunner
.runSchematicAsync('upgrade-cli-8-3', {}, tree)
.toPromise();
expect( expect(
readJsonInTree(result, 'package.json').devDependencies['@angular/cli'] readJsonInTree(result, 'package.json').devDependencies['@angular/cli']
@ -43,7 +50,9 @@ describe('Update 8.5.0', () => {
}) })
); );
const result = await runMigration('upgrade-cli-8-3', {}, tree); const result = await schematicRunner
.runSchematicAsync('upgrade-cli-8-3', {}, tree)
.toPromise();
expect( expect(
readJsonInTree(result, 'package.json').devDependencies['@angular/cli'] readJsonInTree(result, 'package.json').devDependencies['@angular/cli']
@ -60,7 +69,9 @@ describe('Update 8.5.0', () => {
}) })
); );
const result = await runMigration('upgrade-cli-8-3', {}, tree); const result = await schematicRunner
.runSchematicAsync('upgrade-cli-8-3', {}, tree)
.toPromise();
expect( expect(
readJsonInTree(result, 'package.json').devDependencies['@angular/cli'] readJsonInTree(result, 'package.json').devDependencies['@angular/cli']
@ -80,7 +91,9 @@ describe('Update 8.5.0', () => {
); );
try { try {
await runMigration('upgrade-cli-8-3', {}, tree); await schematicRunner
.runSchematicAsync('upgrade-cli-8-3', {}, tree)
.toPromise();
} catch (e) { } catch (e) {
error = e; error = e;
} }

View File

@ -1,37 +0,0 @@
import { Tree } from '@angular-devkit/schematics';
import { readJsonInTree, updateJsonInTree } from '@nrwl/workspace';
import { callRule, runMigration } from '../../utils/testing';
describe('add-postinstall', () => {
let tree: Tree;
beforeEach(async () => {
tree = Tree.empty();
tree = await callRule(updateJsonInTree('package.json', () => ({})), tree);
});
it('should add a postinstall for "ngcc"', async () => {
const result = await runMigration('add-postinstall', {}, tree);
const packageJson = readJsonInTree(result, 'package.json');
expect(packageJson.scripts.postinstall).toEqual(
'ngcc --properties es2015 browser module main --first-only --create-ivy-entry-points'
);
});
it('should not add a postinstall if one exists', async () => {
tree = await callRule(
updateJsonInTree('package.json', json => {
json.scripts = {
postinstall: './postinstall.sh'
};
return json;
}),
tree
);
const result = await runMigration('add-postinstall', {}, tree);
const packageJson = readJsonInTree(result, 'package.json');
expect(packageJson.scripts.postinstall).toEqual('./postinstall.sh');
});
});

View File

@ -1,25 +0,0 @@
import { updateJsonInTree } from '@nrwl/workspace';
import { stripIndents } from '@angular-devkit/core/src/utils/literals';
export default function() {
return updateJsonInTree('package.json', (json, context) => {
json.scripts = json.scripts || {};
if (json.scripts.postinstall) {
context.logger.warn(
stripIndents`
---------------------------------------------------------------------------------------
Angular Ivy requires you to run ngcc after every npm install.
The easiest way to accomplish this is to update your postinstall script to invoke ngcc.
---------------------------------------------------------------------------------------
`
);
} else {
context.logger.info(
stripIndents`A "postinstall" script has been added to package.json to run ngcc.`
);
json.scripts.postinstall =
'ngcc --properties es2015 browser module main --first-only --create-ivy-entry-points';
}
return json;
});
}

View File

@ -1,20 +0,0 @@
import { chain, SchematicContext, Tree } from '@angular-devkit/schematics';
import { addUpdateTask } from '@nrwl/workspace';
import { RunSchematicTask } from '@angular-devkit/schematics/tasks';
import { join } from 'path';
export default function() {
return (_, context: SchematicContext) => {
const postInstallTask = context.addTask(
new RunSchematicTask(
join(__dirname, '../../../migrations.json'),
'add-postinstall',
{}
)
);
return chain([
addUpdateTask('@angular/core', '9.0.0-rc.4', [postInstallTask]),
addUpdateTask('@angular/cli', '9.0.0-rc.4', [postInstallTask])
]);
};
}

View File

@ -8,7 +8,7 @@ import { DataPersistence } from './data-persistence';
*/ */
@NgModule({}) @NgModule({})
export class NxModule { export class NxModule {
static forRoot(): ModuleWithProviders<NxModule> { static forRoot(): ModuleWithProviders {
return { ngModule: NxModule, providers: [DataPersistence] }; return { ngModule: NxModule, providers: [DataPersistence] };
} }
} }

View File

@ -372,6 +372,7 @@ describe('app', () => {
tree, tree,
'apps/my-app/tsconfig.app.json' 'apps/my-app/tsconfig.app.json'
); );
expect(tsconfigAppJson.exclude).toEqual(['src/test.ts', '**/*.spec.ts']);
expect(tsconfigAppJson.compilerOptions.outDir).toEqual( expect(tsconfigAppJson.compilerOptions.outDir).toEqual(
'../../dist/out-tsc' '../../dist/out-tsc'
); );
@ -526,5 +527,17 @@ describe('app', () => {
'exclude' 'exclude'
); );
}); });
it('should only include dts files in the tsconfig.app.json', async () => {
const tree = await runSchematic(
'app',
{ name: 'my-app', enableIvy: true },
appTree
);
expect(tree.readContent('apps/my-app/tsconfig.app.json')).toContain(
`\"include\": [\"src/**/*.d.ts\"]`
);
});
}); });
}); });

View File

@ -528,7 +528,7 @@ function updateProject(options: NormalizedSchema): Rule {
: options.unitTestRunner === 'jest' : options.unitTestRunner === 'jest'
? ['src/test-setup.ts', '**/*.spec.ts'] ? ['src/test-setup.ts', '**/*.spec.ts']
: ['src/test.ts', '**/*.spec.ts'], : ['src/test.ts', '**/*.spec.ts'],
include: options.enableIvy ? undefined : ['src/**/*.d.ts'] include: [options.enableIvy ? 'src/**/*.d.ts' : '**/*.ts']
}; };
}), }),
host => { host => {

View File

@ -2,5 +2,6 @@
"extends": "<%= offsetFromRoot %>tsconfig.json", "extends": "<%= offsetFromRoot %>tsconfig.json",
"compilerOptions": { "compilerOptions": {
"types": [] "types": []
} },
"include": ["**/*.ts"]
} }

View File

@ -68,9 +68,9 @@
"type": "string" "type": "string"
}, },
"enableIvy": { "enableIvy": {
"description": "Create a new app that uses the Ivy rendering engine.", "description": "**EXPERIMENTAL** True to create a new app that uses the Ivy rendering engine.",
"type": "boolean", "type": "boolean",
"default": true "default": false
}, },
"prefix": { "prefix": {
"type": "string", "type": "string",

View File

@ -32,22 +32,6 @@ describe('init', () => {
expect(devDependencies['codelyzer']).toBeDefined(); expect(devDependencies['codelyzer']).toBeDefined();
}); });
it('should add a postinstall script for ngcc', async () => {
const tree = await runSchematic(
'init',
{
unitTestRunner: 'karma'
},
appTree
);
const packageJson = readJsonInTree(tree, 'package.json');
expect(packageJson.scripts.postinstall).toEqual(
'ngcc --properties es2015 browser module main --first-only --create-ivy-entry-points'
);
});
describe('--unit-test-runner', () => { describe('--unit-test-runner', () => {
describe('karma', () => { describe('karma', () => {
it('should add karma dependencies', async () => { it('should add karma dependencies', async () => {

View File

@ -10,19 +10,17 @@ import {
readJsonInTree, readJsonInTree,
addDepsToPackageJson, addDepsToPackageJson,
updateWorkspace, updateWorkspace,
formatFiles, formatFiles
updateJsonInTree
} from '@nrwl/workspace'; } from '@nrwl/workspace';
import { import {
angularVersion, angularVersion,
angularDevkitVersion, angularDevkitVersion,
rxjsVersion, rxjsVersion
jestPresetAngularVersion
} from '../../utils/versions'; } from '../../utils/versions';
import { Schema } from './schema'; import { Schema } from './schema';
import { UnitTestRunner, E2eTestRunner } from '../../utils/test-runners'; import { UnitTestRunner, E2eTestRunner } from '../../utils/test-runners';
import { jestPresetAngularVersion } from '../../utils/versions';
import { JsonObject } from '@angular-devkit/core'; import { JsonObject } from '@angular-devkit/core';
import { stripIndents } from '@angular-devkit/core/src/utils/literals';
function updateDependencies(): Rule { function updateDependencies(): Rule {
const deps = { const deps = {
@ -154,32 +152,9 @@ export function setDefaults(options: Schema): Rule {
}); });
} }
function addPostinstall(): Rule {
return updateJsonInTree('package.json', (json, context) => {
json.scripts = json.scripts || {};
if (!json.scripts.postinstall) {
json.scripts.postinstall =
'ngcc --properties es2015 browser module main --first-only --create-ivy-entry-points';
} else {
context.logger.warn(
stripIndents`
---------------------------------------------------------------------------------------
Angular Ivy requires you to run ngcc after every npm install.
The easiest way to accomplish this is to update your postinstall script to invoke ngcc.
---------------------------------------------------------------------------------------
`
);
}
return json;
});
}
export default function(options: Schema): Rule { export default function(options: Schema): Rule {
return chain([ return chain([
setDefaults(options), setDefaults(options),
// TODO: Remove this when ngcc can be run in parallel
addPostinstall(),
updateDependencies(), updateDependencies(),
addUnitTestRunner(options), addUnitTestRunner(options),
addE2eTestRunner(options), addE2eTestRunner(options),

View File

@ -9,11 +9,6 @@ const testRunner = new SchematicTestRunner(
join(__dirname, '../../collection.json') join(__dirname, '../../collection.json')
); );
const migrationTestRunner = new SchematicTestRunner(
'@nrwl/workspace',
join(__dirname, '../../migrations.json')
);
export function runSchematic<SchemaOptions = any>( export function runSchematic<SchemaOptions = any>(
schematicName: string, schematicName: string,
options: SchemaOptions, options: SchemaOptions,
@ -22,16 +17,6 @@ export function runSchematic<SchemaOptions = any>(
return testRunner.runSchematicAsync(schematicName, options, tree).toPromise(); return testRunner.runSchematicAsync(schematicName, options, tree).toPromise();
} }
export function runMigration<SchemaOptions = any>(
schematicName: string,
options: SchemaOptions,
tree: Tree
) {
return migrationTestRunner
.runSchematicAsync(schematicName, options, tree)
.toPromise();
}
export function runExternalSchematic<SchemaOptions = any>( export function runExternalSchematic<SchemaOptions = any>(
collectionName: string, collectionName: string,
schematicName: string, schematicName: string,

View File

@ -1,7 +1,7 @@
export const nxVersion = '*'; export const nxVersion = '*';
export const angularVersion = '9.0.0-rc.5'; export const angularVersion = '^8.2.0';
export const angularDevkitVersion = '0.900.0-rc.5'; export const angularDevkitVersion = '^0.803.14';
export const angularJsVersion = '1.6.6'; export const angularJsVersion = '1.6.6';
export const ngrxVersion = '8.5.0'; export const ngrxVersion = '8.5.0';
export const rxjsVersion = '~6.5.0'; export const rxjsVersion = '~6.4.0';
export const jestPresetAngularVersion = '7.0.0'; export const jestPresetAngularVersion = '7.0.0';

View File

@ -35,8 +35,8 @@
"@nrwl/workspace": "*" "@nrwl/workspace": "*"
}, },
"dependencies": { "dependencies": {
"@angular-devkit/architect": "0.900.0-rc.5", "@angular-devkit/architect": "0.803.14",
"@angular-devkit/core": "9.0.0-rc.5", "@angular-devkit/core": "8.3.14",
"@cypress/webpack-preprocessor": "~4.1.0", "@cypress/webpack-preprocessor": "~4.1.0",
"tree-kill": "1.2.1", "tree-kill": "1.2.1",
"ts-loader": "5.3.1", "ts-loader": "5.3.1",

View File

@ -34,6 +34,6 @@
"dependencies": { "dependencies": {
"@nrwl/node": "*", "@nrwl/node": "*",
"@nrwl/jest": "*", "@nrwl/jest": "*",
"@angular-devkit/schematics": "9.0.0-rc.5" "@angular-devkit/schematics": "8.3.14"
} }
} }

View File

@ -35,8 +35,8 @@
"@nrwl/workspace": "*" "@nrwl/workspace": "*"
}, },
"dependencies": { "dependencies": {
"@angular-devkit/architect": "0.900.0-rc.5", "@angular-devkit/architect": "0.803.14",
"@angular-devkit/core": "9.0.0-rc.5", "@angular-devkit/core": "8.3.14",
"@angular-devkit/schematics": "9.0.0-rc.5" "@angular-devkit/schematics": "8.3.14"
} }
} }

View File

@ -27,7 +27,7 @@
"@nrwl/workspace": "*" "@nrwl/workspace": "*"
}, },
"dependencies": { "dependencies": {
"@angular-devkit/architect": "0.900.0-rc.5", "@angular-devkit/architect": "0.803.14",
"@angular-eslint/builder": "0.0.1-alpha.17" "@angular-eslint/builder": "0.0.1-alpha.17"
} }
} }

View File

@ -34,6 +34,6 @@
"dependencies": { "dependencies": {
"@nrwl/node": "*", "@nrwl/node": "*",
"@nrwl/jest": "*", "@nrwl/jest": "*",
"@angular-devkit/schematics": "9.0.0-rc.5" "@angular-devkit/schematics": "8.3.14"
} }
} }

View File

@ -33,6 +33,6 @@
}, },
"dependencies": { "dependencies": {
"@nrwl/react": "*", "@nrwl/react": "*",
"@angular-devkit/schematics": "9.0.0-rc.5" "@angular-devkit/schematics": "8.3.14"
} }
} }

View File

@ -34,10 +34,10 @@
"dependencies": { "dependencies": {
"@nrwl/jest": "*", "@nrwl/jest": "*",
"@nrwl/linter": "*", "@nrwl/linter": "*",
"@angular-devkit/architect": "0.900.0-rc.5", "@angular-devkit/architect": "0.803.14",
"@angular-devkit/core": "9.0.0-rc.5", "@angular-devkit/core": "8.3.14",
"@angular-devkit/schematics": "9.0.0-rc.5", "@angular-devkit/schematics": "8.3.14",
"@angular-devkit/build-webpack": "0.900.0-rc.5", "@angular-devkit/build-webpack": "0.803.14",
"circular-dependency-plugin": "5.2.0", "circular-dependency-plugin": "5.2.0",
"copy-webpack-plugin": "5.0.3", "copy-webpack-plugin": "5.0.3",
"fork-ts-checker-webpack-plugin": "0.4.15", "fork-ts-checker-webpack-plugin": "0.4.15",

View File

@ -3,6 +3,7 @@ import { JsonObject, workspaces } from '@angular-devkit/core';
import { runWebpack, BuildResult } from '@angular-devkit/build-webpack'; import { runWebpack, BuildResult } from '@angular-devkit/build-webpack';
import { Observable, from } from 'rxjs'; import { Observable, from } from 'rxjs';
import { writeFileSync } from 'fs';
import { resolve } from 'path'; import { resolve } from 'path';
import { map, concatMap } from 'rxjs/operators'; import { map, concatMap } from 'rxjs/operators';
import { getNodeWebpackConfig } from '../../utils/node.config'; import { getNodeWebpackConfig } from '../../utils/node.config';
@ -49,8 +50,7 @@ function run(
runWebpack(config, context, { runWebpack(config, context, {
logging: stats => { logging: stats => {
context.logger.info(stats.toString(config.stats)); context.logger.info(stats.toString(config.stats));
}, }
webpackFactory: require('webpack')
}) })
), ),
map((buildEvent: BuildResult) => { map((buildEvent: BuildResult) => {

View File

@ -5,7 +5,7 @@ import {
TestingArchitectHost, TestingArchitectHost,
TestLogger TestLogger
} from '@angular-devkit/architect/testing'; } from '@angular-devkit/architect/testing';
import { schema, JsonObject, json } from '@angular-devkit/core'; import { schema, JsonObject } from '@angular-devkit/core';
import { Architect, BuilderContext, Target } from '@angular-devkit/architect'; import { Architect, BuilderContext, Target } from '@angular-devkit/architect';
import { ScheduleOptions } from '@angular-devkit/architect/src/api'; import { ScheduleOptions } from '@angular-devkit/architect/src/api';
@ -111,13 +111,4 @@ export class MockBuilderContext implements BuilderContext {
reportProgress(current: number, total?: number, status?: string) {} reportProgress(current: number, total?: number, status?: string) {}
addTeardown(teardown: () => Promise<void> | void) {} addTeardown(teardown: () => Promise<void> | void) {}
async getProjectMetadata(
target: Target | string
): Promise<json.JsonObject | null> {
return (
this.architectHost &&
this.architectHost.getProjectMetadata(target as string)
);
}
} }

View File

@ -34,7 +34,7 @@
"@nrwl/cypress": "*", "@nrwl/cypress": "*",
"@nrwl/jest": "*", "@nrwl/jest": "*",
"@nrwl/web": "*", "@nrwl/web": "*",
"@angular-devkit/schematics": "9.0.0-rc.5", "@angular-devkit/schematics": "8.3.14",
"confusing-browser-globals": "^1.0.8", "confusing-browser-globals": "^1.0.8",
"eslint-plugin-import": "^2.18.2", "eslint-plugin-import": "^2.18.2",
"eslint-plugin-jsx-a11y": "^6.2.3", "eslint-plugin-jsx-a11y": "^6.2.3",

View File

@ -40,7 +40,7 @@
"ignore": "5.0.4", "ignore": "5.0.4",
"npm-run-all": "4.1.5", "npm-run-all": "4.1.5",
"opn": "^5.3.0", "opn": "^5.3.0",
"rxjs": "~6.5.3", "rxjs": "^6.4.0",
"semver": "5.4.1", "semver": "5.4.1",
"strip-json-comments": "2.0.1", "strip-json-comments": "2.0.1",
"tmp": "0.0.33", "tmp": "0.0.33",

View File

@ -5,28 +5,5 @@
"description": "Update storybook builder and tsconfig", "description": "Update storybook builder and tsconfig",
"factory": "./src/migrations/update-8-8-2/update-builder-8-8-2" "factory": "./src/migrations/update-8-8-2/update-builder-8-8-2"
} }
},
"packageJsonUpdates": {
"9.0.0": {
"version": "9.0.0-beta.1",
"packages": {
"@storybook/angular": {
"version": "5.3.0-beta.13",
"alwaysAddToPackageJson": false
},
"@storybook/react": {
"version": "5.3.0-beta.13",
"alwaysAddToPackageJson": false
},
"@storybook/web": {
"version": "5.3.0-beta.13",
"alwaysAddToPackageJson": false
},
"@storybook/addon-knobs": {
"version": "5.3.0-beta.13",
"alwaysAddToPackageJson": false
}
}
}
} }
} }

View File

@ -29,10 +29,10 @@
}, },
"peerDependencies": { "peerDependencies": {
"@nrwl/workspace": "*", "@nrwl/workspace": "*",
"@storybook/angular": "5.3.0-beta.13", "@storybook/angular": "^5.2.5",
"@storybook/react": "5.3.0-beta.13", "@storybook/react": "^5.2.5",
"@storybook/web": "5.3.0-beta.13", "@storybook/web": "^5.2.5",
"@storybook/addon-knobs": "5.3.0-beta.13", "@storybook/addon-knobs": "^5.2.5",
"babel-loader": "^8.0.6", "babel-loader": "^8.0.6",
"@babel/core": "^7.5.4" "@babel/core": "^7.5.4"
}, },

View File

@ -1,12 +0,0 @@
import { chain } from '@angular-devkit/schematics';
import { updatePackagesInPackageJson } from '@nrwl/workspace';
import { join } from 'path';
const updatePackages = updatePackagesInPackageJson(
join(__dirname, '../../../', 'migrations.json'),
'9.0.0'
);
export default function() {
return chain([updatePackages]);
}

View File

@ -1,3 +1,3 @@
export const storybookVersion = '5.3.0-beta.13'; export const storybookVersion = '5.2.5';
export const babelCoreVersion = '7.5.4'; export const babelCoreVersion = '7.5.4';
export const babelLoaderVersion = '8.0.6'; export const babelLoaderVersion = '8.0.6';

View File

@ -29,9 +29,9 @@
}, },
"homepage": "https://nx.dev", "homepage": "https://nx.dev",
"dependencies": { "dependencies": {
"@angular-devkit/schematics": "9.0.0-rc.5", "@angular-devkit/schematics": "8.3.14",
"@angular-devkit/core": "9.0.0-rc.5", "@angular-devkit/core": "8.3.14",
"@angular-devkit/architect": "0.900.0-rc.5", "@angular-devkit/architect": "0.803.14",
"inquirer": "^6.3.1", "inquirer": "^6.3.1",
"minimist": "^1.2.0", "minimist": "^1.2.0",
"strip-json-comments": "2.0.1", "strip-json-comments": "2.0.1",

View File

@ -1,4 +1,5 @@
import { logging, normalize, virtualFs } from '@angular-devkit/core'; import { logging, normalize, virtualFs } from '@angular-devkit/core';
import * as core from '@angular-devkit/core/node';
import { NodeJsSyncHost } from '@angular-devkit/core/node'; import { NodeJsSyncHost } from '@angular-devkit/core/node';
import { BaseWorkflow } from '@angular-devkit/schematics/src/workflow'; import { BaseWorkflow } from '@angular-devkit/schematics/src/workflow';
import { NodeModulesEngineHost } from '@angular-devkit/schematics/tools'; import { NodeModulesEngineHost } from '@angular-devkit/schematics/tools';
@ -12,7 +13,6 @@ import { getLogger } from '../shared/logger';
import { convertToCamelCase, handleErrors } from '../shared/params'; import { convertToCamelCase, handleErrors } from '../shared/params';
import { commandName } from '../shared/print-help'; import { commandName } from '../shared/print-help';
import minimist = require('minimist'); import minimist = require('minimist');
import { dirname, extname, join, resolve } from 'path';
export type MigrationsJson = { export type MigrationsJson = {
version: string; version: string;
@ -473,22 +473,20 @@ class MigrationEngineHost extends NodeModulesEngineHost {
protected _resolveCollectionPath(name: string): string { protected _resolveCollectionPath(name: string): string {
let collectionPath: string | undefined = undefined; let collectionPath: string | undefined = undefined;
try { if (name.replace(/\\/g, '/').split('/').length > (name[0] == '@' ? 2 : 1)) {
return super._resolveCollectionPath(name); try {
} catch {} collectionPath = this._resolvePath(name, process.cwd());
} catch {}
if (name.startsWith('.') || name.startsWith('/')) {
name = resolve(name);
} }
if (extname(name)) { if (!collectionPath) {
collectionPath = require.resolve(name); let packageJsonPath = this._resolvePackageJson(name, process.cwd());
} else { if (!core.fs.isFile(packageJsonPath)) {
const packageJsonPath = require.resolve(join(name, 'package.json')); packageJsonPath = path.join(packageJsonPath, 'package.json');
const packageJson = require(packageJsonPath); }
let pkgJsonSchematics = packageJson['nx-migrations']; let pkgJsonSchematics = require(packageJsonPath)['nx-migrations'];
if (!pkgJsonSchematics) { if (!pkgJsonSchematics) {
pkgJsonSchematics = packageJson['ng-update']; pkgJsonSchematics = require(packageJsonPath)['ng-update'];
if (!pkgJsonSchematics) { if (!pkgJsonSchematics) {
throw new Error(`Could find migrations in package: "${name}"`); throw new Error(`Could find migrations in package: "${name}"`);
} }
@ -496,7 +494,10 @@ class MigrationEngineHost extends NodeModulesEngineHost {
if (typeof pkgJsonSchematics != 'string') { if (typeof pkgJsonSchematics != 'string') {
pkgJsonSchematics = pkgJsonSchematics.migrations; pkgJsonSchematics = pkgJsonSchematics.migrations;
} }
collectionPath = resolve(dirname(packageJsonPath), pkgJsonSchematics); collectionPath = this._resolvePath(
pkgJsonSchematics,
path.dirname(packageJsonPath)
);
} }
try { try {

View File

@ -6,8 +6,7 @@ import {
logging, logging,
normalize, normalize,
schema, schema,
terminal, terminal
workspaces
} from '@angular-devkit/core'; } from '@angular-devkit/core';
import { NodeJsSyncHost } from '@angular-devkit/core/node'; import { NodeJsSyncHost } from '@angular-devkit/core/node';
import { getLogger } from '../shared/logger'; import { getLogger } from '../shared/logger';
@ -19,7 +18,6 @@ import {
} from '../shared/params'; } from '../shared/params';
import { commandName, printHelp } from '../shared/print-help'; import { commandName, printHelp } from '../shared/print-help';
import minimist = require('minimist'); import minimist = require('minimist');
import { WorkspaceDefinition } from '@angular-devkit/core/src/workspace';
export interface RunOptions { export interface RunOptions {
project: string; project: string;
@ -94,12 +92,12 @@ function printRunHelp(
} }
export function validateTargetAndConfiguration( export function validateTargetAndConfiguration(
workspace: WorkspaceDefinition, workspace: experimental.workspace.Workspace,
opts: RunOptions opts: RunOptions
) { ) {
const targets = workspace.projects.get(opts.project).targets; const targets = workspace.getProjectTargets(opts.project);
const target = targets.get(opts.target); const target = targets[opts.target];
if (!target) { if (!target) {
throw new Error( throw new Error(
`Could not find target "${opts.target}" in the ${ `Could not find target "${opts.target}" in the ${
@ -137,16 +135,14 @@ export async function run(root: string, args: string[], isVerbose: boolean) {
return handleErrors(logger, isVerbose, async () => { return handleErrors(logger, isVerbose, async () => {
const fsHost = new NodeJsSyncHost(); const fsHost = new NodeJsSyncHost();
const { workspace } = await workspaces.readWorkspace( const workspace = await new experimental.workspace.Workspace(
'workspace.json', normalize(root) as any,
workspaces.createWorkspaceHost(fsHost) fsHost
); )
.loadWorkspaceFromHost('workspace.json' as any)
.toPromise();
const opts = parseRunOpts( const opts = parseRunOpts(args, workspace.getDefaultProjectName(), logger);
args,
workspace.extensions['defaultProject'] as string,
logger
);
validateTargetAndConfiguration(workspace, opts); validateTargetAndConfiguration(workspace, opts);
const registry = new json.schema.CoreSchemaRegistry(); const registry = new json.schema.CoreSchemaRegistry();

View File

@ -34,20 +34,20 @@
"@nrwl/cypress": "*", "@nrwl/cypress": "*",
"@nrwl/jest": "*", "@nrwl/jest": "*",
"@nrwl/linter": "*", "@nrwl/linter": "*",
"@angular/service-worker": "9.0.0-rc.5", "@angular/service-worker": "8.2.12",
"@angular-devkit/architect": "0.900.0-rc.5", "@angular-devkit/architect": "0.803.14",
"@angular-devkit/build-ng-packagr": "0.900.0-rc.5", "@angular-devkit/build-ng-packagr": "0.803.14",
"@angular-devkit/build-optimizer": "0.900.0-rc.5", "@angular-devkit/build-optimizer": "0.803.14",
"@angular-devkit/build-webpack": "0.900.0-rc.5", "@angular-devkit/build-webpack": "0.803.14",
"@angular-devkit/core": "9.0.0-rc.5", "@angular-devkit/core": "8.3.14",
"@angular-devkit/schematics": "9.0.0-rc.5", "@angular-devkit/schematics": "8.3.14",
"@babel/core": "7.5.5", "@babel/core": "7.5.5",
"@babel/preset-env": "7.5.5", "@babel/preset-env": "7.5.5",
"@babel/preset-typescript": "7.3.3", "@babel/preset-typescript": "7.3.3",
"@babel/plugin-proposal-class-properties": "7.5.5", "@babel/plugin-proposal-class-properties": "7.5.5",
"@babel/plugin-proposal-decorators": "7.4.4", "@babel/plugin-proposal-decorators": "7.4.4",
"@babel/plugin-transform-regenerator": "7.4.5", "@babel/plugin-transform-regenerator": "7.4.5",
"@ngtools/webpack": "9.0.0-rc.5", "@ngtools/webpack": "8.3.14",
"ajv": "6.10.2", "ajv": "6.10.2",
"autoprefixer": "9.6.1", "autoprefixer": "9.6.1",
"babel-loader": "8.0.6", "babel-loader": "8.0.6",

View File

@ -111,8 +111,7 @@ export function run(options: WebBuildBuilderOptions, context: BuilderContext) {
return runWebpack(config, context, { return runWebpack(config, context, {
logging: stats => { logging: stats => {
context.logger.info(stats.toString(config.stats)); context.logger.info(stats.toString(config.stats));
}, }
webpackFactory: require('webpack')
}); });
} else { } else {
return of(); return of();

View File

@ -101,9 +101,7 @@ function run(
return runWebpackDevServer(config, context, { return runWebpackDevServer(config, context, {
logging: stats => { logging: stats => {
context.logger.info(stats.toString(config.stats)); context.logger.info(stats.toString(config.stats));
}, }
webpackFactory: require('webpack'),
webpackDevServerFactory: require('webpack-dev-server')
}).pipe( }).pipe(
map(output => { map(output => {
output.baseUrl = serverUrl; output.baseUrl = serverUrl;

View File

@ -11,7 +11,7 @@ import {
TestingArchitectHost, TestingArchitectHost,
TestLogger TestLogger
} from '@angular-devkit/architect/testing'; } from '@angular-devkit/architect/testing';
import { schema, JsonObject, json } from '@angular-devkit/core'; import { schema, JsonObject } from '@angular-devkit/core';
const testRunner = new SchematicTestRunner( const testRunner = new SchematicTestRunner(
'@nrwl/web', '@nrwl/web',
@ -115,13 +115,4 @@ export class MockBuilderContext implements BuilderContext {
reportProgress(current: number, total?: number, status?: string) {} reportProgress(current: number, total?: number, status?: string) {}
addTeardown(teardown: () => Promise<void> | void) {} addTeardown(teardown: () => Promise<void> | void) {}
async getProjectMetadata(
target: Target | string
): Promise<json.JsonObject | null> {
return (
this.architectHost &&
this.architectHost.getProjectMetadata(target as string)
);
}
} }

View File

@ -29,11 +29,6 @@
"version": "8.5.0-beta.1", "version": "8.5.0-beta.1",
"description": "Fix the exclude paths in tsconfig.lib.json files for Jest projects", "description": "Fix the exclude paths in tsconfig.lib.json files for Jest projects",
"factory": "./src/migrations/update-8-5-0/fix-tsconfig-lib-json" "factory": "./src/migrations/update-8-5-0/fix-tsconfig-lib-json"
},
"update-9-0-0": {
"version": "9.0.0-beta.1",
"description": "Update typescript to 3.6 and angular/cli to version 9",
"factory": "./src/migrations/update-9-0-0/update-9-0-0"
} }
}, },
"packageJsonUpdates": { "packageJsonUpdates": {
@ -288,19 +283,6 @@
"alwaysAddToPackageJson": false "alwaysAddToPackageJson": false
} }
} }
},
"9.0.0": {
"version": "9.0.0-beta.1",
"packages": {
"@angular/cli": {
"version": "9.0.0-rc.4",
"alwaysAddToPackageJson": false
},
"typescript": {
"version": "~3.6.4",
"alwaysAddToPackageJson": false
}
}
} }
} }
} }

View File

@ -43,14 +43,14 @@
] ]
}, },
"dependencies": { "dependencies": {
"@angular-devkit/core": "9.0.0-rc.5", "@angular-devkit/core": "8.3.14",
"@angular-devkit/schematics": "9.0.0-rc.5", "@angular-devkit/schematics": "8.3.14",
"cosmiconfig": "4.0.0", "cosmiconfig": "4.0.0",
"fs-extra": "6.0.0", "fs-extra": "6.0.0",
"ignore": "5.0.4", "ignore": "5.0.4",
"npm-run-all": "4.1.5", "npm-run-all": "4.1.5",
"opn": "^5.3.0", "opn": "^5.3.0",
"rxjs": "~6.5.3", "rxjs": "^6.4.0",
"semver": "5.4.1", "semver": "5.4.1",
"strip-json-comments": "2.0.1", "strip-json-comments": "2.0.1",
"tmp": "0.0.33", "tmp": "0.0.33",

View File

@ -1,12 +0,0 @@
import { chain } from '@angular-devkit/schematics';
import { updatePackagesInPackageJson } from '@nrwl/workspace';
import { join } from 'path';
const updatePackages = updatePackagesInPackageJson(
join(__dirname, '../../../', 'migrations.json'),
'9.0.0'
);
export default function() {
return chain([updatePackages]);
}

View File

@ -1,7 +1,7 @@
export const nxVersion = '*'; export const nxVersion = '*';
export const angularCliVersion = '9.0.0-rc.5'; export const angularCliVersion = '8.3.14';
export const typescriptVersion = '~3.6.4'; export const typescriptVersion = '~3.5.3';
export const prettierVersion = '1.18.2'; export const prettierVersion = '1.18.2';
export const typescriptESLintVersion = '2.3.2'; export const typescriptESLintVersion = '2.3.2';
export const eslintVersion = '6.1.0'; export const eslintVersion = '6.1.0';

View File

@ -5,7 +5,7 @@ if [ "$1" = "fast" ]; then
fi fi
if [ "$1" != "fast" ]; then if [ "$1" != "fast" ]; then
./scripts/package.sh --local ./scripts/build.sh
fi fi
rm -rf node_modules/@nrwl rm -rf node_modules/@nrwl

4873
yarn.lock

File diff suppressed because it is too large Load Diff