Browse Source

Merge pull request #6444 from abpframework/fix/6443

Fixed the @abp/ng.schematics package building errors
pull/6452/head
Levent Arman Özak 5 years ago
committed by GitHub
parent
commit
f83ec02297
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 6
      npm/ng-packs/packages/schematics/package.json
  2. 200
      npm/ng-packs/packages/schematics/src/utils/angular/workspace-models.ts
  3. 6
      npm/ng-packs/packages/schematics/src/utils/workspace.ts
  4. 26
      npm/ng-packs/scripts/build-schematics.ts

6
npm/ng-packs/packages/schematics/package.json

@ -9,14 +9,14 @@
"license": "MIT",
"schematics": "./collection.json",
"dependencies": {
"@angular-devkit/core": "~10.0.3",
"@angular-devkit/schematics": "~10.0.3",
"@angular-devkit/core": "~11.0.2",
"@angular-devkit/schematics": "~11.0.2",
"got": "^11.5.2",
"jsonc-parser": "^2.3.0",
"typescript": "~3.9.2"
},
"devDependencies": {
"@schematics/angular": "~10.0.3",
"@schematics/angular": "~11.0.2",
"@types/jest": "^26.0.0",
"@types/node": "^12.11.1",
"jest": "^26.0.0",

200
npm/ng-packs/packages/schematics/src/utils/angular/workspace-models.ts

@ -5,72 +5,70 @@
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
import { experimental } from '@angular-devkit/core';
export enum ProjectType {
Application = 'application',
Library = 'library',
Application = 'application',
Library = 'library',
}
export enum Builders {
AppShell = '@angular-devkit/build-angular:app-shell',
Server = '@angular-devkit/build-angular:server',
Browser = '@angular-devkit/build-angular:browser',
Karma = '@angular-devkit/build-angular:karma',
TsLint = '@angular-devkit/build-angular:tslint',
NgPackagr = '@angular-devkit/build-ng-packagr:build',
DevServer = '@angular-devkit/build-angular:dev-server',
ExtractI18n = '@angular-devkit/build-angular:extract-i18n',
Protractor = '@angular-devkit/build-angular:protractor',
AppShell = '@angular-devkit/build-angular:app-shell',
Server = '@angular-devkit/build-angular:server',
Browser = '@angular-devkit/build-angular:browser',
Karma = '@angular-devkit/build-angular:karma',
TsLint = '@angular-devkit/build-angular:tslint',
DeprecatedNgPackagr = '@angular-devkit/build-ng-packagr:build',
NgPackagr = '@angular-devkit/build-angular:ng-packagr',
DevServer = '@angular-devkit/build-angular:dev-server',
ExtractI18n = '@angular-devkit/build-angular:extract-i18n',
Protractor = '@angular-devkit/build-angular:protractor',
}
export interface FileReplacements {
replace: string;
with: string;
replace: string;
with: string;
}
export interface BrowserBuilderBaseOptions {
main: string;
tsConfig: string;
fileReplacements?: FileReplacements[];
outputPath?: string;
index?: string;
polyfills: string;
assets?: (object|string)[];
styles?: (object|string)[];
scripts?: (object|string)[];
sourceMap?: boolean;
main: string;
tsConfig: string;
fileReplacements?: FileReplacements[];
outputPath?: string;
index?: string;
polyfills: string;
assets?: (object | string)[];
styles?: (object | string)[];
scripts?: (object | string)[];
sourceMap?: boolean;
}
export type OutputHashing = 'all' | 'media' | 'none' | 'bundles';
export interface BrowserBuilderOptions extends BrowserBuilderBaseOptions {
serviceWorker?: boolean;
optimization?: boolean;
outputHashing?: OutputHashing;
resourcesOutputPath?: string;
extractCss?: boolean;
namedChunks?: boolean;
aot?: boolean;
extractLicenses?: boolean;
vendorChunk?: boolean;
buildOptimizer?: boolean;
ngswConfigPath?: string;
budgets?: {
type: string;
maximumWarning?: string;
maximumError?: string;
}[];
webWorkerTsConfig?: string;
serviceWorker?: boolean;
optimization?: boolean;
outputHashing?: OutputHashing;
resourcesOutputPath?: string;
extractCss?: boolean;
namedChunks?: boolean;
aot?: boolean;
extractLicenses?: boolean;
vendorChunk?: boolean;
buildOptimizer?: boolean;
ngswConfigPath?: string;
budgets?: {
type: string;
maximumWarning?: string;
maximumError?: string;
}[];
webWorkerTsConfig?: string;
}
export interface ServeBuilderOptions {
browserTarget: string;
browserTarget: string;
}
export interface LibraryBuilderOptions {
tsConfig: string;
project: string;
tsConfig: string;
project: string;
}
export interface ServerBuilderOptions {
@ -82,45 +80,47 @@ export interface ServerBuilderOptions {
scripts?: boolean;
styles?: boolean;
};
sourceMap?: boolean | {
scripts?: boolean;
styles?: boolean;
hidden?: boolean;
vendor?: boolean;
};
sourceMap?:
| boolean
| {
scripts?: boolean;
styles?: boolean;
hidden?: boolean;
vendor?: boolean;
};
}
export interface AppShellBuilderOptions {
browserTarget: string;
serverTarget: string;
route: string;
browserTarget: string;
serverTarget: string;
route: string;
}
export interface TestBuilderOptions extends Partial<BrowserBuilderBaseOptions> {
karmaConfig: string;
karmaConfig: string;
}
export interface LintBuilderOptions {
tsConfig: string[] | string;
exclude?: string[];
tsConfig: string[] | string;
exclude?: string[];
}
export interface ExtractI18nOptions {
browserTarget: string;
browserTarget: string;
}
export interface E2EOptions {
protractorConfig: string;
devServerTarget: string;
protractorConfig: string;
devServerTarget: string;
}
export interface BuilderTarget<TBuilder extends Builders, TOptions> {
builder: TBuilder;
options: TOptions;
configurations?: {
production: Partial<TOptions>;
[key: string]: Partial<TOptions>;
};
builder: TBuilder;
options: TOptions;
configurations?: {
production: Partial<TOptions>;
[key: string]: Partial<TOptions>;
};
}
export type LibraryBuilderTarget = BuilderTarget<Builders.NgPackagr, LibraryBuilderOptions>;
@ -133,39 +133,47 @@ export type ServeBuilderTarget = BuilderTarget<Builders.DevServer, ServeBuilderO
export type ExtractI18nBuilderTarget = BuilderTarget<Builders.ExtractI18n, ExtractI18nOptions>;
export type E2EBuilderTarget = BuilderTarget<Builders.Protractor, E2EOptions>;
export interface WorkspaceSchema extends experimental.workspace.WorkspaceSchema {
projects: {
[key: string]: WorkspaceProject<ProjectType.Application | ProjectType.Library>;
};
export interface WorkspaceSchema {
version: 1;
defaultProject?: string;
cli?: { warnings?: Record<string, boolean> };
projects: {
[key: string]: WorkspaceProject<ProjectType.Application | ProjectType.Library>;
};
}
export interface WorkspaceProject<TProjectType extends ProjectType = ProjectType.Application>
extends experimental.workspace.WorkspaceProject {
/**
* Project type.
*/
projectType: ProjectType;
export interface WorkspaceProject<TProjectType extends ProjectType = ProjectType.Application> {
/**
* Project type.
*/
projectType: ProjectType;
root: string;
sourceRoot: string;
prefix: string;
cli?: { warnings?: Record<string, boolean> };
/**
* Tool options.
*/
architect?: WorkspaceTargets<TProjectType>;
/**
* Tool options.
*/
targets?: WorkspaceTargets<TProjectType>;
/**
* Tool options.
*/
architect?: WorkspaceTargets<TProjectType>;
/**
* Tool options.
*/
targets?: WorkspaceTargets<TProjectType>;
}
export interface WorkspaceTargets<TProjectType extends ProjectType = ProjectType.Application> {
build?: TProjectType extends ProjectType.Library ? LibraryBuilderTarget : BrowserBuilderTarget;
server?: ServerBuilderTarget;
lint?: LintBuilderTarget;
test?: TestBuilderTarget;
serve?: ServeBuilderTarget;
e2e?: E2EBuilderTarget;
'app-shell'?: AppShellBuilderTarget;
'extract-i18n'?: ExtractI18nBuilderTarget;
// TODO(hans): change this any to unknown when google3 supports TypeScript 3.0.
// tslint:disable-next-line:no-any
[key: string]: any;
build?: TProjectType extends ProjectType.Library ? LibraryBuilderTarget : BrowserBuilderTarget;
server?: ServerBuilderTarget;
lint?: LintBuilderTarget;
test?: TestBuilderTarget;
serve?: ServeBuilderTarget;
e2e?: E2EBuilderTarget;
'app-shell'?: AppShellBuilderTarget;
'extract-i18n'?: ExtractI18nBuilderTarget;
// TODO(hans): change this any to unknown when google3 supports TypeScript 3.0.
// tslint:disable-next-line:no-any
[key: string]: any;
}

6
npm/ng-packs/packages/schematics/src/utils/workspace.ts

@ -1,8 +1,8 @@
import { experimental, strings, workspaces } from '@angular-devkit/core';
import { strings, workspaces } from '@angular-devkit/core';
import { SchematicsException, Tree } from '@angular-devkit/schematics';
import { Exception } from '../enums';
import { Project } from '../models';
import { getWorkspace, ProjectType } from './angular';
import { getWorkspace, ProjectType, WorkspaceSchema } from './angular';
import { findEnvironmentExpression } from './ast';
import { readFileInTree } from './common';
@ -23,7 +23,7 @@ export function readWorkspaceSchema(tree: Tree) {
const workspaceBuffer = tree.read('/angular.json') || tree.read('/workspace.json');
if (!workspaceBuffer) throw new SchematicsException(Exception.NoWorkspace);
let workspaceSchema: experimental.workspace.WorkspaceSchema;
let workspaceSchema: WorkspaceSchema;
try {
workspaceSchema = JSON.parse(workspaceBuffer.toString());

26
npm/ng-packs/scripts/build-schematics.ts

@ -49,18 +49,22 @@ async function* copyPackageFiles(packageName: string) {
}
(async () => {
await fse.remove(`../dist/${PACKAGE_TO_BUILD}`);
try {
await fse.remove(`../dist/${PACKAGE_TO_BUILD}`);
await execa(
'tsc',
['-p', `packages/${PACKAGE_TO_BUILD}/tsconfig.json`, '--outDir', `dist/${PACKAGE_TO_BUILD}`],
{
stdout: 'inherit',
cwd: '../',
},
);
await execa(
'tsc',
['-p', `packages/${PACKAGE_TO_BUILD}/tsconfig.json`, '--outDir', `dist/${PACKAGE_TO_BUILD}`],
{
stdout: 'inherit',
cwd: '../',
},
);
for await (const filecopy of copyPackageFiles(PACKAGE_TO_BUILD)) {
// do nothing
for await (const filecopy of copyPackageFiles(PACKAGE_TO_BUILD)) {
// do nothing
}
} catch (error) {
process.exit(1);
}
})();

Loading…
Cancel
Save