mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-19 03:32:21 +08:00
fix(angular): fix adding @ionic/angular when using ng add (#17597)
closes #17596
This commit is contained in:

committed by
Liam DeBeasi

parent
9b3a3716df
commit
484d92cd50
@ -1,20 +1,20 @@
|
|||||||
import {
|
import {
|
||||||
Rule,
|
|
||||||
SchematicContext,
|
|
||||||
SchematicsException,
|
|
||||||
Tree,
|
|
||||||
apply,
|
apply,
|
||||||
chain,
|
chain,
|
||||||
mergeWith,
|
mergeWith,
|
||||||
move,
|
move,
|
||||||
|
Rule,
|
||||||
|
SchematicContext,
|
||||||
|
SchematicsException,
|
||||||
template,
|
template,
|
||||||
|
Tree,
|
||||||
url
|
url
|
||||||
} from '@angular-devkit/schematics';
|
} from '@angular-devkit/schematics';
|
||||||
import { Path, join } from '@angular-devkit/core';
|
import { join, Path } from '@angular-devkit/core';
|
||||||
import { NodePackageInstallTask } from '@angular-devkit/schematics/tasks';
|
import { NodePackageInstallTask } from '@angular-devkit/schematics/tasks';
|
||||||
import { addPackageToPackageJson } from './../utils/package';
|
import { addPackageToPackageJson } from './../utils/package';
|
||||||
import { addModuleImportToRootModule } from './../utils/ast';
|
import { addModuleImportToRootModule } from './../utils/ast';
|
||||||
import { addStyle, getWorkspace, addArchitectBuilder } from './../utils/config';
|
import { addArchitectBuilder, addStyle, getWorkspace } from './../utils/config';
|
||||||
import { Schema as IonAddOptions } from './schema';
|
import { Schema as IonAddOptions } from './schema';
|
||||||
|
|
||||||
function addIonicAngularToPackageJson(): Rule {
|
function addIonicAngularToPackageJson(): Rule {
|
||||||
@ -36,10 +36,11 @@ function addIonicAngularToolkitToPackageJson(): Rule {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
function addIonicAngularModuleToAppModule(): Rule {
|
function addIonicAngularModuleToAppModule(projectSourceRoot): Rule {
|
||||||
return (host: Tree) => {
|
return (host: Tree) => {
|
||||||
addModuleImportToRootModule(
|
addModuleImportToRootModule(
|
||||||
host,
|
host,
|
||||||
|
projectSourceRoot,
|
||||||
'IonicModule.forRoot()',
|
'IonicModule.forRoot()',
|
||||||
'@ionic/angular'
|
'@ionic/angular'
|
||||||
);
|
);
|
||||||
@ -118,14 +119,14 @@ export default function ngAdd(options: IonAddOptions): Rule {
|
|||||||
|
|
||||||
const sourcePath = join(project.root as Path, 'src');
|
const sourcePath = join(project.root as Path, 'src');
|
||||||
const rootTemplateSource = apply(url('./files/root'), [
|
const rootTemplateSource = apply(url('./files/root'), [
|
||||||
template({ ...options }),
|
template({...options}),
|
||||||
move(sourcePath)
|
move(sourcePath)
|
||||||
]);
|
]);
|
||||||
return chain([
|
return chain([
|
||||||
// @ionic/angular
|
// @ionic/angular
|
||||||
addIonicAngularToPackageJson(),
|
addIonicAngularToPackageJson(),
|
||||||
addIonicAngularToolkitToPackageJson(),
|
addIonicAngularToolkitToPackageJson(),
|
||||||
addIonicAngularModuleToAppModule(),
|
addIonicAngularModuleToAppModule(sourcePath),
|
||||||
addIonicBuilder(),
|
addIonicBuilder(),
|
||||||
addIonicStyles(),
|
addIonicStyles(),
|
||||||
mergeWith(rootTemplateSource),
|
mergeWith(rootTemplateSource),
|
||||||
|
@ -27,12 +27,13 @@ export function getSourceFile(host: Tree, path: string): ts.SourceFile {
|
|||||||
*/
|
*/
|
||||||
export function addModuleImportToRootModule(
|
export function addModuleImportToRootModule(
|
||||||
host: Tree,
|
host: Tree,
|
||||||
|
projectSourceRoot,
|
||||||
moduleName: string,
|
moduleName: string,
|
||||||
importSrc: string
|
importSrc: string
|
||||||
) {
|
) {
|
||||||
addModuleImportToModule(
|
addModuleImportToModule(
|
||||||
host,
|
host,
|
||||||
normalize(`src/app/app.module.ts`),
|
normalize(`${projectSourceRoot}/app/app.module.ts`),
|
||||||
moduleName,
|
moduleName,
|
||||||
importSrc
|
importSrc
|
||||||
);
|
);
|
||||||
|
Reference in New Issue
Block a user