Подтвердить что ты не робот

Как я могу получить angular2 для работы в Visual Studio 2015 с помощью TypeScript?

Я пытаюсь получить Angular 2 для работы в Visual Studio 2015 с Typescript. Я пытаюсь получить самый простой пример для работы в веб-проекте типа MVC 5 (web.config вместо config.json):

import {Component, bootstrap} from 'angular2/angular2';

@Component({
    selector: 'my-app',
    template: '<h1>My First Angular 2 App</h1>'
})
class AppComponent { }
bootstrap(AppComponent);

Я пробую самые минимальные вещи, необходимые для выполнения этой работы. Поэтому я загрузил последний Angular 2 (alpha.45) и скопировал все Typescript в загруженной папке modules. Включая все подпапки ( минус docs и examples).

Я уверен, что это будет работать за пределами Visual Studio, как я это делал раньше, но я пытаюсь заставить его работать в Visual Studio, и он дает мне более 3000 ошибок, и похоже, что это потому, что Мне не хватает других модулей или чего-то еще.

Вот несколько вещей, которые мне не хватает:

Карта (default_keyvalue_differ.ts и многие другие):

export class DefaultKeyValueDiffer implements KeyValueDiffer {
  private _records: Map<any, any> = new Map();

assert (lexer.ts):

  scanCharacter(start: number, code: number): Token {
    assert(this.peek == code);

Установить (command_compiler.ts):

function removeKeyValueArrayDuplicates(keyValueArray: string[]): string[] {
  var knownPairs = new Set();

начинается с (shadow_css.ts)

rule.selector.startsWith('@page')

требуется (parse5_adapter.ts)

var parse5 = require('parse5/index');

@reactivex/rxjs/dist/cjs/Rx (async.ts)

export {Subject} from '@reactivex/rxjs/dist/cjs/Rx';

Существует гораздо больше. Поэтому мой первый вопрос: действительно ли мне нужно все это, или некоторые из них не требуются. 2-й и, что более важно, как мне получить Visual Studio для создания моего решения?

Примечание. Я думаю, что этот "очень длинный пример/учебник" - это то, что я искал, за исключением того, что он предназначен для MVC 6 (.NET Core) вместо MVC 5: http://chsakell.com/2016/01/01/cross-platform-single-page-applications-with-asp-net-5-angular-2-typescript/

4b9b3361

Ответ 1

Я знаю, что SO не увлекается вставкой ссылок на материал, но это довольно большой учебник для подражания, чтобы просто скопировать туда сюда... и все его биты имеют значение для ответа на вопрос. В любом случае, здесь учебник, предоставленный командой Angular 2, чтобы получить NG2, работающий в Visual Studio MVC 5:

https://angular.io/docs/ts/latest/cookbook/visual-studio-2015.html

Ответ 2

Я предполагаю, что у вас есть проблема со старой версией npm, которая использует Visual Studio 2015. Я рекомендую вам открыть окно вывода Visual Studio и выбрать "Показать вывод" с "Bower/npm". На следующем рисунке вы увидите что-то вроде:

введите описание изображения здесь

Самая импортированная строка вывода длинна и разрезана. Я включаю его в сепареты:

npm ERR! команда "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\External\\ node\node" "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Инструменты\Внешний\npm\node_modules\npm\bin\npm-cli.js" "установить"

Другими словами, важно понимать, что Visual Studio 2015 использует некоторые инструменты, включая npm из каталога C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\External. Angular2 имеют пакет зависимостей reactivex/rxjs, для которого требуется "npm":"~2.0.0", но Visual Studio вместо этого использует старую версию 1.4.9 (вы можете проверить version of "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\External\npm\node_modules\npm\package.json"). Даже если вы установили последнюю версию Nodejs и npm, это не поможет, потому что Visual Studio 2015 будет использовать ту же старую версию npm.

Чтобы устранить проблему, я предлагаю вам сделать следующее:

  • установите последнюю версию NodeJ. Вы можете скачать его из https://nodejs.org/en/. Если вы предпочитаете использовать x64-версию, я рекомендую вам проверить, что вы уже установили x86 в C:\Program Files (x86)\nodejs. Если версия x86 существует, удалите ее перед началом установки x64-версии. После этого вы можете установить Nodejs. Сегодня это будет NodeJs 5.0.0 от node-v5.0.0-x64.msi.
  • тогда вы можете запустить Command Prompt в режиме администратора (это не mandotory) и использовать npm update -g для обновления npm или использовать npm install -g [email protected] для установки последней версии. Я рекомендую вам использовать npm -v до и после установки, чтобы убедиться, что вы устанавливаете последнюю версию. Сегодня это версия 3.3.12. В зависимости от того, как вы установили/обновили npm, вы можете установить его либо в C:\Program Files\nodejs\node_modules\npm, либо в %AppData%\npm (например, в директиве C:\Users\Oleg\AppData\Roaming\npm) или в обоих назначениях.
  • вы должны запустить текстовый редактор под правами администратора (например, меню "Пуск", поиск, введите notepad.exe и нажмите Ctrl+Shift+Enter)). После этого вы должны изменить файл C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\External\npm.cmd и установить в качестве содержимого что-то вроде @"C:\Program Files\nodejs\node.exe" "%AppData%\npm\node_modules\npm\bin\npm-cli.js" %* или @"C:\Program Files\nodejs\node.exe" "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js" %*

После этого вы можете просто сохранить package.json, имеющий запись типа "angular2": "^2.0.0-alpha.45" в разделе "devDependencies" или "dependencies", и установка будет успешной. Вероятно, вы увидите только предупреждение, например

введите описание изображения здесь

потому что теперь вы используете "слишком хорошую" версию npm: версию 3.3.12 вместо некоторой версии 2.x.x (на основе правила "npm":"~2.0.0" пакета зависимостей reactivex/rxjs).

P.S. Вероятно, у вас есть другая ошибка, если вы используете MVC5 вместо предварительной версии MVC6 (ASP.NET 5), но основная проблема такая же. Вы должны установить новую версию node и npm и изменить C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\Web Tools\External\npm.cmd, чтобы использовать новую версию npm.

Ответ 3

Мой ответ для MVC6 (не видел, что MVC5 необходим)

Я рекомендую использовать стартовый шаблон. Я могу порекомендовать шаблон, который также использует HMR и Angular Universal (рендеринг на стороне сервера для SEO и более быстрая загрузка страниц):

https://github.com/aspnet/JavaScriptServices

Начало работы: http://blog.stevensanderson.com/2016/05/02/angular2-react-knockout-apps-on-aspnet-core/

Ответ 4

У меня это работало.

npm install. из папки node_modules удалите все папки, кроме angular2 и systemjs. в папке angular2 удалите все, кроме пучков. в папке bundles/typings удалите все, кроме angular2.

структура папки выглядит следующим образом:

node_modules
  -- angular2
     -- bundles
        -- typings
           --angular2
  -- systemjs