2016-12-28 1 views
4

Я использую this руководство по созданию приложения с угловым стартером.Ошибка при создании приложения Angular2 с Visual Studio

Когда я пытаюсь построить его, он жалуется на плохие параметры, и я заметил, что он строит с машинописным текстом 1.8 вместо машинописного текста 2.x. Я установил [email protected] через npm. npm install -g [email protected]. Я установил VS Options для загрузки .\node_modules\.bin сначала во внешние веб-инструменты. У меня есть файл tsconfig.json. Я вижу, что он все еще пытается скомпилировать с помощью машинописного текста 1.8. Любые идеи, что делать, чтобы исправить это? Я дважды следовал за проводником.

1>Target "PreComputeCompileTypeScriptWithTSConfig" in file "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\TypeScript\Microsoft.TypeScript.targets" from project "C:\Users\111111\Documents\Visual Studio 2015\Projects\TestAngular\TestAngular\TestAngular.csproj" (target "CompileTypeScriptWithTSConfig" depends on it): 
1>Using "VsTsc" task from assembly "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\TypeScript\TypeScript.tasks.dll". 
1>Task "VsTsc" 
1> C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.8\tsc.exe --project "C:\Users\111111\Documents\Visual Studio 2015\Projects\TestAngular\TestAngular\tsconfig.json" --listEmittedFiles 
1>Done executing task "VsTsc". 
1>Done building target "PreComputeCompileTypeScriptWithTSConfig" in project "TestAngular.csproj". 
1>Target "CompileTypeScriptWithTSConfig" in file "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\TypeScript\Microsoft.TypeScript.targets" from project "C:\Users\111111\Documents\Visual Studio 2015\Projects\TestAngular\TestAngular\TestAngular.csproj" (target "Compile" depends on it): 
1>Task "VsTsc" 
1> C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.8\tsc.exe --project "C:\Users\111111\Documents\Visual Studio 2015\Projects\TestAngular\TestAngular\tsconfig.json" --listEmittedFiles 
1> C:\Users\111111\Documents\Visual Studio 2015\Projects\TestAngular\TestAngular\error TS5023:Build:Unknown compiler option 'listemittedfiles'. 
1>C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\TypeScript\Microsoft.TypeScript.targets(214,5): error MSB6006: "tsc.exe" exited with code 1. 
1>Done executing task "VsTsc" -- FAILED. 
1>Done building target "CompileTypeScriptWithTSConfig" in project "TestAngular.csproj" -- FAILED. 

tsconfig.json

{ 
    "compilerOptions": { 
    "target": "es5", 
    "module": "commonjs", 
    "moduleResolution": "node", 
    "sourceMap": true, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "lib": [ "es2015", "dom" ], 
    "noImplicitAny": true, 
    "suppressImplicitAnyIndexErrors": true 
    } 
} 

Я не сделал ничего особенного в моей .csproj. Я попытался установить <TypeScriptToolsVersion>2.0</TypeScriptToolsVersion>, но это ничего не делает.

Как обеспечить выполнение задачи VsTsc с помощью машинописного текста 2? Также в External Web Tools я хотел бы знать, где .\node_modules\.bin тоже относится? Кажется, это не C:\Users\111111\Documents\Visual Studio 2015\Projects\TestAngular\TestAngular\node_modules\.bin. Npm устанавливал машинописные тексты на C:\Users\111111\AppData\Roaming\npm.

Дополнительная информация: Я нашел этот ответ. Build:Unknown compiler option 'listemittedfiles'

В нем объясняется обходной путь (не устанавливайте через npm, установите через установку VS). Но мой вопрос по-прежнему заключается в том, почему список внешних веб-инструментов, возможно, ничего не делает? Или как он даже модифицирует версию викинга.

+0

Пожалуйста, проверьте, если установить все требования, (Установка Node.js, установка Visual Studio 2015 Update 3, Установка машинопись 2 для Visual Studio 2015), основанный на требования и шаги, которые он выполняет, я также устанавливаю TypeScript через команду npm и изменяю настройку с именем TypeScriptToolsVersion на 2.0, вот пример (https://1drv.ms/u/s!AlvaNEnglADDfqpo40tZnw_yIuw), пожалуйста, сравните файл csproj с ваша. Кроме того, проверьте, есть ли папка с именем 2.1 в C: \ Program Files (x86) \ Microsoft SDKs \ TypeScript –

+0

Я точно знаю, что 2.1 не существует в 'C: \ Program Files (x86) \ Microsoft SDKs \ TypeScript 'перед тем, как я запустил установщик VS TypScript. Выполняет ли это npm install -g typescript @ 2.0? – kosmos

+0

Как сказал trungk18, npm install -g [email protected], он будет установлен глобально в 'C: \ Users \ username \ AppData \ Roaming \ npm, у которых нет tsc.exe. он не устанавливает машинопись в C: \ Program Files (x86) \ Microsoft SDKs \ TypeScript, что вызывает проблему. когда вы строите проект, msbuild находит связанный tsc.exe через свойство, которое находит tsc.exe из C: \ Program Files (x86) \ Microsoft SDKs \ TypeScript. –

ответ

3

Добавьте следующие TestAngular.csproj:

<PropertyGroup> 
    <TscToolPath>PATH TO DESIRED tsc.exe, NOT INCLUDING THE tsc.exe</TscToolPath> 
</PropertyGroup> 
+0

Я хочу, чтобы что-то подобное было интегрировано в внешние веб-инструменты, но это лучший ответ на этот раз. Это лучший способ найти решение, которое я хочу, и получить VS для использования tsc.exe, где я хочу. – kosmos

2

External Web Tools

Для двойной проверки, вы переместите $ (PATH) запись выше $ (DevEnvDir) записи, как мое изображение ниже?


.\node_modules\.bin является обратитесь к папке node_module на том же уровне с package.json в вашем проекте. Это означает, что пакет будет установлен локально только в эту папку.

Поскольку вы запустили npm install -g [email protected], он будет установлен глобально в 'C:\Users\username\AppData\Roaming\npm, а не в папку вашего проекта.

Смотрите здесь по-другому: Locally installed versus globally installed NPM modules

+0

Да, у меня есть инструменты, как в картине. Также я выполнил глобальную установку для машинописного текста, но также и свою часть pacakge.json. '" devDependencies ": { " typescript ":" ~ 2.0.10 "' – kosmos

+0

Это довольно странно, можете ли вы обновить tsconfig.json в своем вопросе? – trungk18

+0

сделано. Он определяет версию TS до того, как это используется даже я думаю, поэтому я не думаю, что это имеет значение. – kosmos

0

плз проверить это, как настроить angular2 + машинопись в VS2015 сообщества (обновление 3)

https://github.com/MohtishamZubair/AgentDistribution/wiki/Setting-up-AngularJS2-in-VS2015-in-MVC5

Среднее в заходящего $ мой (путь) является вторым последним

+0

Вы не хотите вносить изменения в настройки VS, просто следуйте моей статье. Даже вам не нужен сервер node.js @ trungk18 проверьте наличие дубликатов записей в файлах csproj. –

+0

Это известное обходное решение, как указано в первоначальном вопросе. Вещь, которая необходима, заключается в том, чтобы заставить VS использовать npm, установленный TypScript2, и не нуждаться в расширениях VS. – kosmos

0

Я считаю, VS2015 работает несколько иначе, чем другие редакторы.

Дополнительно: Удалите предыдущую версию «Инструменты ввода-вывода для Microsoft Visual Studio 2015» в разделе «Программы и функции».

Загрузите и установите последние «Инструменты ввода-вывода для Microsoft Visual Studio 2015» на странице https://www.typescriptlang.org/#download-links.

Надеюсь, что исправляет вашу проблему.

+0

Опять же, это известное обходное решение, как указано в исходном вопросе. Вещь, которая необходима, заключается в том, чтобы заставить VS использовать npm, установленный TypScript2, и ** не ** нуждаться в VS-расширениях. – kosmos

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