【发布时间】:2016-12-28 05:15:41
【问题描述】:
我正在使用this 指南来构建一个入门 angular2 应用程序。
当我尝试构建它时抱怨选项不好,我注意到它使用 typescript 1.8 而不是 typescript 2.x 构建。我已经通过 npm 安装了 Typescript@2.0。 npm install -g typescript@2.0。我已将 VS 选项设置为首先在外部 Web 工具中加载 .\node_modules\.bin。我有一个 tsconfig.json 文件。我可以看到它仍在尝试使用 typescript 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 任务使用的是 typescript 2?同样在外部网络工具中,我也很想知道.\node_modules\.bin 指的是哪里?好像不是C:\Users\111111\Documents\Visual Studio 2015\Projects\TestAngular\TestAngular\node_modules\.bin。 Npm 将 typescript 安装到C:\Users\111111\AppData\Roaming\npm。
附加信息: 我确实找到了这个答案。 Build:Unknown compiler option 'listemittedfiles'
它解释了解决方法(不要通过 npm 安装,通过 VS 安装来安装)。但我的问题仍然是为什么外部 Web 工具列表可能什么都不做?或者它甚至如何修改 Typescript 的哪个版本。
【问题讨论】:
-
请检查您是否安装了所有要求,(安装 Node.js,安装 Visual Studio 2015 Update 3,安装 Visual Studio 2015 的 TypeScript 2),根据要求和它的工作步骤,我也可以通过 npm 命令安装 TypeScript,并将名为 TypeScriptToolsVersion 的设置修改为 2.0,这里是示例(1drv.ms/u/s!AlvaNEnglADDfqpo40tZnw_yIuw),请与您的 csproj 文件进行比较。另外,请检查 C:\Program Files (x86)\Microsoft SDKs\TypeScript 中是否有名为 2.1 的文件夹
-
在我运行 VS Typescript 安装程序之前,我确定
C:\Program Files (x86)\Microsoft SDKs\TypeScript中不存在 2.1。npm install -g typescript@2.0会这样做吗? -
如trungk18所说,npm install -g typescript@2.0,会全局安装在'C:\Users\username\AppData\Roaming\npm,没有tsc.exe。它不会在 C:\Program Files (x86)\Microsoft SDKs\TypeScript 中安装 typescript,这会导致问题。在构建项目时,msbuild 通过属性查找相关的 tsc.exe,该属性从 C:\Program Files (x86)\Microsoft SDKs\TypeScript 中找到 tsc.exe。
标签: angular visual-studio-2015 npm msbuild typescript2.0