本文整理匯總了TypeScript中@angular-devkit/schematics.Tree.create方法的典型用法代碼示例。如果您正苦於以下問題:TypeScript Tree.create方法的具體用法?TypeScript Tree.create怎麽用?TypeScript Tree.create使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類@angular-devkit/schematics.Tree
的用法示例。
在下文中一共展示了Tree.create方法的8個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: it
it('should find a module', () => {
tree.create('/projects/my-proj/src/app.module.ts', '');
options.module = 'app.module.ts';
options.path = '/projects/my-proj/src';
const modPath = findModuleFromOptions(tree, options);
expect(modPath).toEqual('/projects/my-proj/src/app.module.ts' as Path);
});
示例2: it
it('should not overwrite existing custom theme files', () => {
appTree.create('/projects/material/custom-theme.scss', 'custom-theme');
const tree = runner.runSchematic('ng-add-setup-project', {theme: 'custom'}, appTree);
expect(tree.readContent('/projects/material/custom-theme.scss')).toBe('custom-theme',
'Expected the old custom theme content to be unchanged.');
});
示例3: return
return (host: Tree, context: SchematicContext) => {
const oldConfigPath = getConfigPath(host);
const configPath = normalize('angular.json');
context.logger.info(`Updating configuration`);
const config: JsonObject = {
'$schema': './node_modules/@angular/cli/lib/config/schema.json',
version: 1,
newProjectRoot: 'projects',
projects: extractProjectsConfig(oldConfig, host, logger),
};
const defaultProject = extractDefaultProject(oldConfig);
if (defaultProject !== null) {
config.defaultProject = defaultProject;
}
const cliConfig = extractCliConfig(oldConfig);
if (cliConfig !== null) {
config.cli = cliConfig;
}
const schematicsConfig = extractSchematicsConfig(oldConfig);
if (schematicsConfig !== null) {
config.schematics = schematicsConfig;
}
const targetsConfig = extractTargetsConfig(oldConfig);
if (targetsConfig !== null) {
config.architect = targetsConfig;
}
context.logger.info(`Removing old config file (${oldConfigPath})`);
host.delete(oldConfigPath);
context.logger.info(`Writing config file (${configPath})`);
host.create(configPath, JSON.stringify(config, null, 2));
return host;
};
示例4: insertCustomTheme
/**
* Insert a custom theme to project style file. If no valid style file could be found, a new
* Scss file for the custom theme will be created.
*/
function insertCustomTheme(project: WorkspaceProject, projectName: string, host: Tree,
workspace: WorkspaceSchema) {
const stylesPath = getProjectStyleFile(project, 'scss');
const themeContent = createCustomTheme(projectName);
if (!stylesPath) {
if (!project.sourceRoot) {
throw new SchematicsException(`Could not find source root for project: "${projectName}". ` +
`Please make sure that the "sourceRoot" property is set in the workspace config.`);
}
// Normalize the path through the devkit utilities because we want to avoid having
// unnecessary path segments and windows backslash delimiters.
const customThemePath = normalize(join(project.sourceRoot, defaultCustomThemeFilename));
if (host.exists(customThemePath)) {
console.warn(yellow(`Cannot create a custom Angular Material theme because
${bold(customThemePath)} already exists. Skipping custom theme generation.`));
return;
}
host.create(customThemePath, themeContent);
addThemeStyleToTarget(project, 'build', host, customThemePath, workspace);
return;
}
const insertion = new InsertChange(stylesPath, 0, themeContent);
const recorder = host.beginUpdate(stylesPath);
recorder.insertLeft(insertion.pos, insertion.toAdd);
host.commitUpdate(recorder);
}
示例5: return
return (host: Tree, context: SchematicContext) => {
const name = options.name || getWorkspace(host).defaultProject;
if (!name) {
throw new Error('Please provide a name for Bazel workspace');
}
validateProjectName(name);
if (!host.exists('yarn.lock')) {
host.create('yarn.lock', '');
}
const workspaceVersions = {
'RULES_NODEJS_VERSION': '0.18.6',
'RULES_NODEJS_SHA256': '1416d03823fed624b49a0abbd9979f7c63bbedfd37890ddecedd2fe25cccebc6',
'RULES_SASS_VERSION': '1.17.0',
};
return mergeWith(apply(url('./files'), [
applyTemplates({
utils: strings,
name,
'dot': '.', ...workspaceVersions,
routing: hasRoutingModule(host),
sass: hasSassStylesheet(host),
}),
]));
};
示例6: it
it('should import Store into the component', () => {
const options = { ...defaultOptions, state: 'reducers' };
appTree.create('/src/app/reducers', '');
const tree = schematicRunner.runSchematic('container', options, appTree);
const content = getFileContent(tree, '/src/app/foo/foo.component.ts');
expect(content).toMatch(/import\ {\ Store\ }\ from\ '@ngrx\/store';/);
});
示例7: createFile
function createFile(remoteFiles: Tree, { path, file }: { path: string, file: FileEntry }) {
if (!file) {
console.log(`missing: ${path}`)
}
remoteFiles.create(path, file.content);
}
示例8: createAppModuleWithEffects
export function createAppModuleWithEffects(
tree: Tree,
path: string,
effects?: string
): Tree {
tree.create(
path || '/src/app/app.module.ts',
`
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { EffectsModule } from '@ngrx/effects';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
${effects}
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
`
);
return tree;
}