当前位置: 首页>>代码示例>>TypeScript>>正文


TypeScript CompilerFactory.createCompiler方法代码示例

本文整理汇总了TypeScript中@angular/core.CompilerFactory.createCompiler方法的典型用法代码示例。如果您正苦于以下问题:TypeScript CompilerFactory.createCompiler方法的具体用法?TypeScript CompilerFactory.createCompiler怎么用?TypeScript CompilerFactory.createCompiler使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在@angular/core.CompilerFactory的用法示例。


在下文中一共展示了CompilerFactory.createCompiler方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。

示例1: ngExpressEngine

export function ngExpressEngine(setupOptions: NgSetupOptions) {

  const compilerFactory: CompilerFactory = platformDynamicServer().injector.get(CompilerFactory);
  const compiler: Compiler = compilerFactory.createCompiler([
    {
      providers: [
        { provide: ResourceLoader, useClass: FileLoader, deps: [] }
      ]
    }
  ]);

  return function (filePath: string, options: RenderOptions, callback: (err?: Error | null, html?: string) => void) {

    options.providers = options.providers || [];

    try {
      const moduleOrFactory = options.bootstrap || setupOptions.bootstrap;

      if (!moduleOrFactory) {
        throw new Error('You must pass in a NgModule or NgModuleFactory to be bootstrapped');
      }

      setupOptions.providers = setupOptions.providers || [];

      const extraProviders = setupOptions.providers.concat(
        options.providers,
        getReqResProviders(options.req, options.res),
        [
          {
            provide: INITIAL_CONFIG,
            useValue: {
              document: getDocument(filePath),
              url: options.req.originalUrl
            }
          }
        ]);

      getFactory(moduleOrFactory, compiler)
        .then(factory => {
          return renderModuleFactory(factory, {
            extraProviders: extraProviders
          });
        })
        .then((html: string) => {
          callback(null, html);
        }, (err) => {
          callback(err);
        });
    } catch (err) {
      callback(err);
    }
  };
}
开发者ID:MarkPieszak,项目名称:universal,代码行数:53,代码来源:main.ts

示例2: it

    it('should use an already intialized firebase app if it exists', done => {
      @NgModule({
        imports: [
          AngularFireModule.initializeApp(COMMON_CONFIG, APP_NAME),
          BrowserModule
        ]})
      class MyModule {
        ngDoBootstrap() {}
      }

      const compilerFactory: CompilerFactory =
          defaultPlatform.injector.get(CompilerFactory, null);
      const moduleFactory = compilerFactory.createCompiler().compileModuleSync(MyModule);

      defaultPlatform.bootstrapModuleFactory(moduleFactory)
        .then(moduleRef => {
          const ref = moduleRef.injector.get(FirebaseApp);
          expect(ref.name).toEqual(app.name);
        }).then(done, e => {
          fail(e);
          done()
        });
    })
开发者ID:cartant,项目名称:angularfire2,代码行数:23,代码来源:angularfire2.spec.ts

示例3: ngAspnetCoreEngine

export function ngAspnetCoreEngine(
  options: IEngineOptions
): Promise<{ html: string, globals: { styles: string, title: string, meta: string, transferData?: {}, [key: string]: any } }> {

  options.providers = options.providers || [];

  const compilerFactory: CompilerFactory = platformDynamicServer().injector.get(CompilerFactory);
  const compiler: Compiler = compilerFactory.createCompiler([
    {
      providers: [
        { provide: ResourceLoader, useClass: FileLoader }
      ]
    }
  ]);

  return new Promise((resolve, reject) => {

    try {
      const moduleOrFactory = options.ngModule;
      if (!moduleOrFactory) {
        throw new Error('You must pass in a NgModule or NgModuleFactory to be bootstrapped');
      }

      const extraProviders = options.providers.concat(
        options.providers,
        [
          {
            provide: INITIAL_CONFIG,
            useValue: {
              document: options.appSelector,
              url: options.request.url
            }
          },
          {
            provide: ORIGIN_URL,
            useValue: options.request.origin
          }, {
            provide: REQUEST,
            useValue: options.request.data.request
          }
        ]
      );

      const platform = platformServer(extraProviders);

      getFactory(moduleOrFactory, compiler)
        .then((factory: NgModuleFactory<{}>) => {

          return platform.bootstrapModuleFactory(factory).then((moduleRef: NgModuleRef<{}>) => {

            const state: PlatformState = moduleRef.injector.get(PlatformState);
            const appRef: ApplicationRef = moduleRef.injector.get(ApplicationRef);

            appRef.isStable
              .filter((isStable: boolean) => isStable)
              .first()
              .subscribe((stable) => {

                // Fire the TransferState Cache
                const bootstrap = moduleRef.instance['ngOnBootstrap'];
                bootstrap && bootstrap();

                // The parse5 Document itself
                const AST_DOCUMENT = state.getDocument();

                // Strip out the Angular application
                const htmlDoc = state.renderToString();

                const APP_HTML = htmlDoc.substring(
                  htmlDoc.indexOf('<body>') + 6,
                  htmlDoc.indexOf('</body>')
                );

                // Strip out Styles / Meta-tags / Title
                const STYLES = [];
                const SCRIPTS = [];
                const META = [];
                const LINKS = [];
                let TITLE = '';

                //let STYLES_STRING = htmlDoc.substring(
                  //htmlDoc.indexOf('<style ng-transition'),
                  //htmlDoc.lastIndexOf('</style>') + 8
                //);
              let STYLES_STRING: string = htmlDoc.indexOf('<style ng-transition') > -1
                                    ? htmlDoc.substring(
                                        htmlDoc.indexOf('<style ng-transition'),
                                        htmlDoc.lastIndexOf('</style>') + 8)
                                    : null;
                // STYLES_STRING = STYLES_STRING.replace(/\s/g, '').replace('<styleng-transition', '<style ng-transition');

                const HEAD = AST_DOCUMENT.head;

                let count = 0;

                for (let i = 0; i < HEAD.children.length; i++) {
                  let element = HEAD.children[i];

                  if (element.name === 'title') {
                    TITLE = element.children[0].data;
//.........这里部分代码省略.........
开发者ID:SKorolchuk,项目名称:aspnetcore-angular2-universal,代码行数:101,代码来源:temporary-aspnetcore-engine.ts

示例4: createCompiler

export function createCompiler(compilerFactory: CompilerFactory) {
  return compilerFactory.createCompiler();
}
开发者ID:j-thebault,项目名称:angular-umd-dynamic-example,代码行数:3,代码来源:app.module.ts


注:本文中的@angular/core.CompilerFactory.createCompiler方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。