2016-06-05 1 views
0

В настоящее время я устанавливаю HTTP_PROVIDERS на уровне компонента приложения. Я вижу ошибку при запуске компилятора через ./node_modules/.bin/ngc.ошибка при угловой 2 компиляции шаблона в автономном режиме - @ angular/http не имеет экспортированного члена HTTP_PROVIDERS

Полная ошибка при запуске компилятора

Error: Error at /Users/girishnanda/Documents/offlinecompiler/src/app.component.ngfactory.ts:47:33: Module '"/Users/girishnanda/Documents/offlinecompiler/node_modules/@angular/http/http"' has no exported member 'HTTP_PROVIDERS'. 
Error at /Users/girishnanda/Documents/offlinecompiler/src/app.component.ngfactory.ts:51:38: Module '"/Users/girishnanda/Documents/offlinecompiler/node_modules/@angular/http/http"' has no exported member 'HTTP_PROVIDERS'. 
Error at /Users/girishnanda/Documents/offlinecompiler/src/app.component.ngfactory.ts:53:77: Cannot use 'new' with an expression whose type lacks a call or construct signature. 
    at check (/Users/girishnanda/Documents/offlinecompiler/node_modules/@angular/compiler-cli/tsc.js:32:15) 
    at Tsc.typeCheck (/Users/girishnanda/Documents/offlinecompiler/node_modules/@angular/compiler-cli/tsc.js:67:9) 
    at /Users/girishnanda/Documents/offlinecompiler/node_modules/@angular/compiler-cli/main.js:39:23 
    at process._tickCallback (node.js:406:9) 
    at Function.Module.runMain (module.js:449:11) 
    at startup (node.js:141:18) 
    at node.js:933:3 
Compilation failed 

App компонента, в котором я устанавливаю HTTP_PROVIDERS

import {Component} from '@angular/core'; 
import {HTTP_PROVIDERS} from '@angular/http'; 
@Component({ 
    selector: 'app', 
    template: `test 
       `, 
    providers: [HTTP_PROVIDERS] 
}) 
export class AppComponent { 
    constructor() { } 
} 

Версия компилятор, компиляция кли, машинопись и @ угловой/HTTP используется

"@angular/compiler": "2.0.0-rc.1", 
"@angular/compiler-cli": "0.2.0", 
"@angular/http": "2.0.0-rc.1", 
"typescript": "^1.9.0-dev.20160605-1.0" 

Tsconfig.json

{ 
    "compilerOptions": { 
     "emitDecoratorMetadata": true, 
     "experimentalDecorators": true, 
     "target": "es5", 
     "module": "commonjs", 
     "moduleResolution": "node", 
     "removeComments": true, 
     "sourceMap": true, 
     "outDir": "built", 
     "noImplicitAny": false 
    }, 
    "exclude": [ 
     "typings/main.d.ts", 
     "typings/main", 
     "node_modules" 
    ] 
} 

Typings.json

{ 
     "globalDependencies": { 
      "core-js": "registry:dt/core-js#0.0.0+20160317120654", 
      "jasmine": "registry:dt/jasmine#2.2.0+20160505161446", 
      "node": "registry:dt/node#4.0.0+20160509154515" 
     } 
    } 

Если я не включают HTTP_PROVIDERS, компиляция успешно работает без ошибок. Любое руководство по поводу того, что мне нужно изменить, чтобы я мог скомпилировать с помощью HTTP_PROVIDERS, было бы полезно.

В ответ на комментарий о попытке добавить поставщика в бутстрап. Это мой main.ts. Я еще не понял, как добавить дополнительных поставщиков. Это базовый пример с автономным компилятором.

import {coreBootstrap, ReflectiveInjector, enableProdMode} from '@angular/core'; 
import {browserPlatform, BROWSER_APP_COMMON_PROVIDERS, BROWSER_APP_STATIC_PROVIDERS} from '@angular/platform-browser'; 
import {AppComponentNgFactory} from './app.component.ngfactory'; 
import {AppComponent} from './app.component'; 

enableProdMode(); 

const appInjector = 
    ReflectiveInjector 
    .resolveAndCreate(BROWSER_APP_COMMON_PROVIDERS, browserPlatform().injector); 
coreBootstrap(appInjector, AppComponentNgFactory); 
+0

Если вы импортируете HTTP_PROVIDERS из main.ts, установите bootstrap (AppComponent, [HTTP_PROVIDERS]); и удалить его из app.component, что появляется? –

+0

@KayoLima Я только что обновил, чтобы показать мой main.ts выше. Я еще не понял, как добавить дополнительных провайдеров в базовый пример автономного компилятора. Это не так просто, как добавление HTTP_PROVIDERS в resolAndCreate, которое может принимать массив. –

ответ

0

Это работает для меня.

const appInjector = 
    ReflectiveInjector 
    .resolveAndCreate([ 
     BROWSER_APP_PROVIDERS, 
     HTTP_PROVIDERS 
    ], browserPlatform().injector); 
coreBootstrap(someComponentNgFactory, appInjector); 

 Смежные вопросы

  • Нет связанных вопросов^_^