From ed0f0f8487be35493d75c45ab8f8be888e515647 Mon Sep 17 00:00:00 2001 From: Jason Jean Date: Mon, 3 Feb 2020 09:04:29 -0500 Subject: [PATCH] feat(react): rename bundle builder to package (#2411) --- .../builders/{bundle.md => package.md} | 4 +- .../builders/{bundle.md => package.md} | 4 +- .../builders/{bundle.md => package.md} | 4 +- .../src/schematics/library/library.spec.ts | 2 +- .../react/src/schematics/library/library.ts | 2 +- packages/web/builders.json | 8 +-- packages/web/migrations.json | 5 ++ .../package.impl.spec.ts} | 4 +- .../package.impl.ts} | 0 .../{bundle => package}/run-rollup.ts | 0 .../builders/{bundle => package}/schema.json | 4 +- .../update-9-0-0/update-builder-9-0-0.spec.ts | 54 +++++++++++++++++++ .../update-9-0-0/update-builder-9-0-0.ts | 21 ++++++++ 13 files changed, 96 insertions(+), 16 deletions(-) rename docs/angular/api-web/builders/{bundle.md => package.md} (97%) rename docs/react/api-web/builders/{bundle.md => package.md} (97%) rename docs/web/api-web/builders/{bundle.md => package.md} (97%) rename packages/web/src/builders/{bundle/bundle.impl.spec.ts => package/package.impl.spec.ts} (97%) rename packages/web/src/builders/{bundle/bundle.impl.ts => package/package.impl.ts} (100%) rename packages/web/src/builders/{bundle => package}/run-rollup.ts (100%) rename packages/web/src/builders/{bundle => package}/schema.json (91%) create mode 100644 packages/web/src/migrations/update-9-0-0/update-builder-9-0-0.spec.ts create mode 100644 packages/web/src/migrations/update-9-0-0/update-builder-9-0-0.ts diff --git a/docs/angular/api-web/builders/bundle.md b/docs/angular/api-web/builders/package.md similarity index 97% rename from docs/angular/api-web/builders/bundle.md rename to docs/angular/api-web/builders/package.md index d65555cbfae15..72b98e82a868a 100644 --- a/docs/angular/api-web/builders/bundle.md +++ b/docs/angular/api-web/builders/package.md @@ -1,6 +1,6 @@ -# bundle +# package -Bundle a library +Package a library Builder properties can be configured in angular.json when defining the builder, or when invoking it. diff --git a/docs/react/api-web/builders/bundle.md b/docs/react/api-web/builders/package.md similarity index 97% rename from docs/react/api-web/builders/bundle.md rename to docs/react/api-web/builders/package.md index 50d51c7645f24..09d7145f42115 100644 --- a/docs/react/api-web/builders/bundle.md +++ b/docs/react/api-web/builders/package.md @@ -1,6 +1,6 @@ -# bundle +# package -Bundle a library +Package a library Builder properties can be configured in workspace.json when defining the builder, or when invoking it. Read more about how to use builders and the CLI here: https://nx.dev/react/guides/cli. diff --git a/docs/web/api-web/builders/bundle.md b/docs/web/api-web/builders/package.md similarity index 97% rename from docs/web/api-web/builders/bundle.md rename to docs/web/api-web/builders/package.md index 6e1e5f11a31e2..27c23b9a30247 100644 --- a/docs/web/api-web/builders/bundle.md +++ b/docs/web/api-web/builders/package.md @@ -1,6 +1,6 @@ -# bundle +# package -Bundle a library +Package a library Builder properties can be configured in workspace.json when defining the builder, or when invoking it. Read more about how to use builders and the CLI here: https://nx.dev/web/guides/cli. diff --git a/packages/react/src/schematics/library/library.spec.ts b/packages/react/src/schematics/library/library.spec.ts index 492357e8c99f8..fe19bb845da85 100644 --- a/packages/react/src/schematics/library/library.spec.ts +++ b/packages/react/src/schematics/library/library.spec.ts @@ -326,7 +326,7 @@ describe('lib', () => { const workspaceJson = readJsonInTree(tree, '/workspace.json'); expect(workspaceJson.projects['my-lib'].architect.build).toMatchObject({ - builder: '@nrwl/web:bundle', + builder: '@nrwl/web:package', options: { entryFile: 'libs/my-lib/src/index.ts', outputPath: 'dist/libs/my-lib', diff --git a/packages/react/src/schematics/library/library.ts b/packages/react/src/schematics/library/library.ts index 4becc36125b33..af0f6b640b7f7 100644 --- a/packages/react/src/schematics/library/library.ts +++ b/packages/react/src/schematics/library/library.ts @@ -107,7 +107,7 @@ function addProject(options: NormalizedSchema): Rule { if (options.publishable) { architect.build = { - builder: '@nrwl/web:bundle', + builder: '@nrwl/web:package', options: { outputPath: `dist/libs/${options.projectDirectory}`, tsConfig: `${options.projectRoot}/tsconfig.lib.json`, diff --git a/packages/web/builders.json b/packages/web/builders.json index 5fb8a795d0a8c..2ca1cfe0d9f51 100644 --- a/packages/web/builders.json +++ b/packages/web/builders.json @@ -6,10 +6,10 @@ "schema": "./src/builders/build/schema.json", "description": "Build a application" }, - "bundle": { - "implementation": "./src/builders/bundle/bundle.impl", - "schema": "./src/builders/bundle/schema.json", - "description": "Bundle a library" + "package": { + "implementation": "./src/builders/package/package.impl", + "schema": "./src/builders/package/schema.json", + "description": "Package a library" }, "dev-server": { "implementation": "./src/builders/dev-server/dev-server.impl", diff --git a/packages/web/migrations.json b/packages/web/migrations.json index 8feabb653e92a..4e27527a1aac1 100644 --- a/packages/web/migrations.json +++ b/packages/web/migrations.json @@ -4,6 +4,11 @@ "version": "8.5.0-beta.1", "description": "Update web build builder", "factory": "./src/migrations/update-8-5-0/update-builder-8-5-0" + }, + "update-builder-9.0.0": { + "version": "9.0.0-beta.1", + "description": "Rename @nrwl/web:bundle => @nrwl/web:package", + "factory": "./src/migrations/update-9-0-0/update-builder-9-0-0" } } } diff --git a/packages/web/src/builders/bundle/bundle.impl.spec.ts b/packages/web/src/builders/package/package.impl.spec.ts similarity index 97% rename from packages/web/src/builders/bundle/bundle.impl.spec.ts rename to packages/web/src/builders/package/package.impl.spec.ts index f349ee9bb4d1f..aa8bee9e1f6b8 100644 --- a/packages/web/src/builders/bundle/bundle.impl.spec.ts +++ b/packages/web/src/builders/package/package.impl.spec.ts @@ -6,14 +6,14 @@ import { workspaces } from '@angular-devkit/core'; import * as f from '@nrwl/workspace/src/utils/fileutils'; import { MockBuilderContext } from '@nrwl/workspace/testing'; -import * as impl from './bundle.impl'; +import * as impl from './package.impl'; import * as rr from './run-rollup'; import { getMockContext } from '../../utils/testing'; import { BundleBuilderOptions } from '../../utils/types'; jest.mock('tsconfig-paths-webpack-plugin'); -describe('WebBuildBuilder', () => { +describe('WebPackagebuilder', () => { let context: MockBuilderContext; let testOptions: BundleBuilderOptions; let runRollup: jasmine.Spy; diff --git a/packages/web/src/builders/bundle/bundle.impl.ts b/packages/web/src/builders/package/package.impl.ts similarity index 100% rename from packages/web/src/builders/bundle/bundle.impl.ts rename to packages/web/src/builders/package/package.impl.ts diff --git a/packages/web/src/builders/bundle/run-rollup.ts b/packages/web/src/builders/package/run-rollup.ts similarity index 100% rename from packages/web/src/builders/bundle/run-rollup.ts rename to packages/web/src/builders/package/run-rollup.ts diff --git a/packages/web/src/builders/bundle/schema.json b/packages/web/src/builders/package/schema.json similarity index 91% rename from packages/web/src/builders/bundle/schema.json rename to packages/web/src/builders/package/schema.json index 89c6e92b18e1c..bc8c5119b2e6d 100644 --- a/packages/web/src/builders/bundle/schema.json +++ b/packages/web/src/builders/package/schema.json @@ -1,6 +1,6 @@ { - "title": "Web Library Bundle Target (Experimental)", - "description": "Bundles a library for web different web usages (UMD, ESM, CJS).", + "title": "Web Library Package Target (Experimental)", + "description": "Pckages a library for web different web usages (UMD, ESM, CJS).", "type": "object", "properties": { "project": { diff --git a/packages/web/src/migrations/update-9-0-0/update-builder-9-0-0.spec.ts b/packages/web/src/migrations/update-9-0-0/update-builder-9-0-0.spec.ts new file mode 100644 index 0000000000000..1a02fb64aaf0a --- /dev/null +++ b/packages/web/src/migrations/update-9-0-0/update-builder-9-0-0.spec.ts @@ -0,0 +1,54 @@ +import { Tree } from '@angular-devkit/schematics'; +import { SchematicTestRunner } from '@angular-devkit/schematics/testing'; +import { + updateJsonInTree, + readJsonInTree, + updateWorkspaceInTree, + readWorkspace, + getWorkspacePath +} from '@nrwl/workspace'; + +import * as path from 'path'; +import { stripIndents } from '@angular-devkit/core/src/utils/literals'; + +describe('Update 8-5-0', () => { + let tree: Tree; + let schematicRunner: SchematicTestRunner; + + beforeEach(async () => { + tree = Tree.empty(); + schematicRunner = new SchematicTestRunner( + '@nrwl/web', + path.join(__dirname, '../../../migrations.json') + ); + }); + + it(`should remove differentialLoading as an option for build builder`, async () => { + tree.create( + 'workspace.json', + JSON.stringify({ + projects: { + demo: { + root: 'apps/demo', + sourceRoot: 'apps/demo/src', + architect: { + build: { + builder: '@nrwl/web:build', + options: { + differentialLoading: true + } + } + } + } + } + }) + ); + + tree = await schematicRunner + .runSchematicAsync('update-builder-8.5.0', {}, tree) + .toPromise(); + + const config = readWorkspace(tree); + expect(config.projects.demo.architect.build.options).toEqual({}); + }); +}); diff --git a/packages/web/src/migrations/update-9-0-0/update-builder-9-0-0.ts b/packages/web/src/migrations/update-9-0-0/update-builder-9-0-0.ts new file mode 100644 index 0000000000000..1816e48e77138 --- /dev/null +++ b/packages/web/src/migrations/update-9-0-0/update-builder-9-0-0.ts @@ -0,0 +1,21 @@ +import { Rule } from '@angular-devkit/schematics'; +import { updateWorkspaceInTree } from '@nrwl/workspace'; + +export default function update(): Rule { + return updateWorkspaceInTree(workspaceJson => { + Object.entries(workspaceJson.projects).forEach( + ([projectName, project]) => { + Object.entries(project.architect).forEach( + ([targetName, targetConfig]) => { + if (targetConfig.builder === '@nrwl/web:bundle') { + workspaceJson.projects[projectName].architect[ + targetName + ].builder = '@nrwl/web:package'; + } + } + ); + } + ); + return workspaceJson; + }); +}