2016-05-13 2 views
5

Я пытаюсь создать приложение Angular 2 с использованием TypScript в Visual Studio 2015. Я установил npm на свою машину. Когда я скомпилирую свое приложение, я получаю ошибки, не могу найти модуль '@ angular/core'. Он передается во всех файлах ts в папке node_modules в инструкции import. .Невозможно найти модуль @ angular/core + angular2

import { ElementRef, AfterViewInit, OnDestroy, DoCheck, EventEmitter, IterableDiffers } from '@angular/core'; 

В настоящее время я получаю около 500 плюс ошибки. Ошибка исчезает, когда я заменяю ее на «angular2/core». Также, чтобы сообщить вам, я использую компоненты PrimeNG UI в моем проекте.

Может ли кто-нибудь помочь? Я не понимаю, почему он смотрит на @ angular/core?

+0

Предлагаю использовать https://cli.angular.io/. См. Также https://www.youtube.com/watch?v=wHZe6gGI5RY –

+0

Спасибо. Могу ли я включить структуру кода, сгенерированную cli.angular.io, в мое решение Visual Studio – Tom

+0

Извините, вы не можете с этим поделать. –

ответ

2

Название angular2 в именах модулей относится к версиям до версий RC (релиз-кандидат) (бета-версии) и @angular для версий RC.

+0

Я использую версию angular2 2.0.0-beta.17. Итак, в чем проблема – Tom

+0

Итак, вам нужно использовать: import {...} из 'angular2/core'; –

+0

Теперь я немного смущен.Когда я выполняю npm install angular2, он устанавливает версию ngular2 2.0.0-beta.17. Как установить версию кандидата на выпуск. Поскольку мне нужно использовать последние. – Tom

5
  1. Установите nodejs
  2. Открыть CMD строке введите 'CD ваш каталог проекта'
  3. типа 'НПМ установки' и нажмите клавишу ВВОД.

Это создаст папку node_modules внутри этого каталога, которая должна иметь требуемое значение @ angleular/core.

+0

Спасибо за ваш ответ. Действительно спас мое время! –

2

Прежде всего необходимо добавить типизацию на глобальном уровне, как показано ниже.

npm install -g typings 

Затем создайте typings.json, используя команду ниже.

typings init 

Paste ниже код в typings.json

{ 
    "name": "ng2-application", 
    "globalDependencies": { 
    "core-js": "registry:dt/core-js#0.0.0+20160725163759", 
    "jasmine": "registry:dt/jasmine#2.2.0+20160621224255", 
    "node": "registry:dt/node#6.0.0+20160909174046" 
    } 
} 

Теперь вам нужно добавить следующий код в tsconfig.json

"compilerOptions": { 
     "moduleResolution": "node" 
     } 

После выполнения выше шагов, которые вы будете иметь возможность получить определения на F12.

+0

Работает как очарование, спасибо. – AfroChase

0

Когда у меня была эта проблема, она приходила и уходила в зависимости от типа модуля, который я выбрал. (Visual Studio, щелкните правой кнопкой мыши проект, свойства, вкладку «Виджет»). Это произойдет для системы System System, которая используется в учебнике Angular2 QuickStart, но не для некоторых других, например.)

Я проверил folder/node_modules/@ angular/core/существовал в proj и был заселен.

Решение должно было отредактировать файл .csproj и добавить строку <TypeScriptModuleResolution>Node</TypeScriptModuleResolution> в разделах Отладка и выпуск. VS по умолчанию устанавливает значение Classic для этого параметра для некоторых параметров ModuleKind.

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