No Exported Member/Node Модули

Я только начинаю Angular 2/Typescript с помощью 5 минут быстрого запуска, найденного здесь. Я столкнулся с тем, что выглядит общей проблемой, но, может быть, немного отличается. Я сталкиваюсь со всеми типами проблем "Без экспорта". Примеры:

Из app.module.ts:

import { NgModule }      from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';

Возвращает

...node_modules/@angular2/core/index" has no exported member 'NgModule'.

и

[email protected]/platform-browser/index" has no exported member 'BrowserModule'.

И из main.ts:

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';

throws:

[email protected]/platform-browser-dynamic/index" has no exported member 'platformBrowserDynamic'.

Я запускаю node версию 4.4.7 и версию npm версии 3.10.5.

Я понимаю, что они, вероятно, разрешимы в контексте учебника, отбросив node или npm до версии, относящейся к учебнику. Я предполагаю, что я предпочел бы иметь объяснение того, как сделать код из учебника актуальным для текущих версий node.

ETA: Эти ошибки возникают при компиляции, а не в выполнении.

Ответ 1

Класс NgModule экспортируется из файла node_modules/@angular/core/src/metadata.d.ts через node_modules/@angular/core/index.d.ts.

Интересно, правильно ли вы указали свойство moduleResolution в файле tsconfig.json:

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "moduleResolution": "node", // <-----
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "removeComments": false,
    "noImplicitAny": false
  }
}

Ответ 2

Для меня это был редактор VSCode. Простое повторное открытие редактора разрешило его

Ответ 3

обновите все ваши @ angular зависимости в package.json как минимум на "2.0.0-rc.5"

после этого проверьте загрузку приложения в main.ts.

в соответствии с изменением 2.0.0-rc.5 происходит смена начальной загрузки вашего приложения. или см. также обновленное руководство по учебникам https://angular.io/guide/quickstart.

import {NgModule} from '@angular/core';

@NgModule({
  declarations: […], // directives, components, and pipes owned by this NgModule
  imports: [BrowserModule],
  providers: […], // additional providers
  bootstrap: [MainComponent],
})
class MyAppModule {}

// Ahead of Time compile
import {platformBrowser} from ‘@angular/platform-browser’;

platformBrowser().bootstrapModuleFactory(MyAppModuleNgFactory);

// JIT compile long form
import {platformBrowserDynamic} from ‘@angular/platform-browser-dynamic’;

platformBrowserDynamic().bootstrapModule(MyAppModule);

Ответ 4

В файле package.json все зависимости, которые используют rc.4, заменяют их на rc.5. Тогда это сработает.