2016-12-19 4 views
0

TypeScript 2.1を使用するソリューション(VS 2017 RC)をビルドしようとしています。それは、Visual Studio Team Servicesの中に構築するときには、(他の多くの中で)次のエラーメッセージで失敗しVisual Studio Team ServicesでAngular2ビルドが失敗する

C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.8\tsc.exe --project "C:\a\1\s\Angular\tsconfig.json" 
[error]Angular\node_modules\rxjs\Observable.d.ts(29,33): Error TS1138: Build: Parameter declaration expected. 

それをグーグルでのビットから、このエラーが原因transcompilerの古いバージョンのために発生していることが表示されます。 VSTSにバージョン2.1を使用させるにはどうすればよいですか?これも可能ですか?ここで

は私がやっているものを明確にするために私のpackage.jsonファイルです:

{ 
    "name": "ng2-startvs", 
    "version": "1.0.0", 
    "description": "", 
    "main": "index.js", 
    "scripts": { 
    "start": "tsc && concurrently \"npm run tsc:w\" \"npm run lite\"", 
    "lite": "lite-server", 
    "tsc": "tsc", 
    "tsc:w": "tsc -w", 
    "typings": "typings", 
    "postinstall": "typings install" 
    }, 
    "keywords": [], 
    "author": "", 
    "license": "ISC", 
    "devDependencies": { 
    "@types/jquery": "^2.0.34", 
    "concurrently": "^3.1.0", 
    "lite-server": "^2.2.2", 
    "typescript": "^2.1.4", 
    "typings": "^2.0.0" 
    }, 
    "dependencies": { 
    "@angular/common": "^2.3.0", 
    "@angular/compiler": "^2.3.0", 
    "@angular/core": "^2.3.0", 
    "@angular/forms": "^2.3.0", 
    "@angular/http": "^2.3.0", 
    "@angular/platform-browser": "^2.3.0", 
    "@angular/platform-browser-dynamic": "^2.3.0", 
    "@angular/router": "^3.3.0", 
    "core-js": "^2.4.1", 
    "reflect-metadata": "^0.1.8", 
    "rxjs": "^5.0.0-beta.12", 
    "systemjs": "^0.19.41", 
    "zone.js": "^0.7.2" 
    } 
} 

私のTSconfigは今、この次のとおりです。ここで

{ 
    "compilerOptions": { 
    "target": "es5", 
    "module": "commonjs", 
    "moduleResolution": "node", 
    "sourceMap": true, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "removeComments": false, 
    "noImplicitAny": false, 
    "outDir": "dist" 
    }, 
    "exclude": [ 
    "node_modules", 
    "typings" 
    ] 
} 

は私のビルド定義である:

<?xml version="1.0" encoding="utf-8"?> 
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.Default.props" Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.Default.props')" /> 
    <PropertyGroup> 
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> 
    <ProjectGuid>{B2A7EAE0-F8C3-4B1E-A3BB-F1F4ECB4A30D}</ProjectGuid> 
    <ProjectTypeGuids>{349c5851-65df-11da-9384-00065b846f21};{fae04ec0-301f-11d3-bf4b-00c04f79efbc}</ProjectTypeGuids> 
    <OutputType>Library</OutputType> 
    <OutputPath>bin</OutputPath> 
    <TargetFrameworkVersion>v4.5.2</TargetFrameworkVersion> 
    <DebugType>full</DebugType> 
    <DebugSymbols>true</DebugSymbols> 
    <TypeScriptToolsVersion>2.1</TypeScriptToolsVersion> 
    <UseIISExpress>true</UseIISExpress> 
    <IISExpressSSLPort /> 
    <IISExpressAnonymousAuthentication /> 
    <IISExpressWindowsAuthentication /> 
    <IISExpressUseClassicPipelineMode /> 
    <UseGlobalApplicationHostFile /> 
    </PropertyGroup> 
    <ItemGroup> 
    <Service Include="{4A0DDDB5-7A95-4FBF-97CC-616D07737A77}" /> 
    </ItemGroup> 
    <ItemGroup> 
    <Content Include="app\app.component.css" /> 
    <Content Include="app\app.component.html" /> 
    <Content Include="index.html" /> 
    <Content Include="systemjs.config.js" /> 
    <Content Include="web.config" /> 
    </ItemGroup> 
    <ItemGroup> 
    <Content Include="package.json" /> 
    <Content Include="tsconfig.json" /> 
    <Content Include="typings.json" /> 
    <None Include="web.Debug.config"> 
     <DependentUpon>web.config</DependentUpon> 
    </None> 
    <None Include="web.Release.config"> 
     <DependentUpon>web.config</DependentUpon> 
    </None> 
    </ItemGroup> 
    <ItemGroup> 
    <TypeScriptCompile Include="app\app.component.ts" /> 
    <TypeScriptCompile Include="app\app.module.ts" /> 
    <TypeScriptCompile Include="app\main.ts" /> 
    <TypeScriptCompile Include="app\shared\models\counter.ts" /> 
    <TypeScriptCompile Include="app\counters\counter-insert.component.ts" /> 
    <TypeScriptCompile Include="app\counters\counter-edit.component.ts" /> 
    </ItemGroup> 
    <PropertyGroup> 
    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">12.0</VisualStudioVersion> 
    </PropertyGroup> 
    <PropertyGroup> 
    <RootNamespace>AngularCounter</RootNamespace> 
    </PropertyGroup> 
    <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" /> 
    <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\WebApplications\Microsoft.WebApplication.targets" Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\WebApplications\Microsoft.WebApplication.targets')" /> 
    <ProjectExtensions> 
    <VisualStudio> 
     <FlavorProperties GUID="{349c5851-65df-11da-9384-00065b846f21}"> 
     <WebProjectProperties> 
      <UseIIS>True</UseIIS> 
      <AutoAssignPort>True</AutoAssignPort> 
      <DevelopmentServerPort>23097</DevelopmentServerPort> 
      <DevelopmentServerVPath>/</DevelopmentServerVPath> 
      <IISUrl>http://localhost:23098/</IISUrl> 
      <NTLMAuthentication>False</NTLMAuthentication> 
      <UseCustomServer>False</UseCustomServer> 
      <CustomServerUrl> 
      </CustomServerUrl> 
      <SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile> 
     </WebProjectProperties> 
     </FlavorProperties> 
    </VisualStudio> 
    </ProjectExtensions> 
    <PropertyGroup Condition="'$(Configuration)' == 'Debug'"> 
    <TypeScriptRemoveComments>false</TypeScriptRemoveComments> 
    <TypeScriptSourceMap>true</TypeScriptSourceMap> 
    </PropertyGroup> 
    <PropertyGroup Condition="'$(Configuration)' == 'Release'"> 
    <TypeScriptRemoveComments>true</TypeScriptRemoveComments> 
    <TypeScriptSourceMap>false</TypeScriptSourceMap> 
    </PropertyGroup> 
    <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets" Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets')" /> 
</Project> 
+0

ビルドサーバーに最初にtsc 2.1がインストールされているかどうか確認したい場合があります。その後、ビルドプロセスを再確認して、tscの呼び出し方法を確認してください。希望が役立ちます。 – Vinny

答えて

1

Hosted AgentのTypeScriptの最高バージョンは2.0.6です。

プロジェクトをビルドするには、Visual Studioのビルドを使用している場合、その問題を対処するための手順を参照してください。

  1. インストール/追加Microsoft.TypeScript.MSBuild package

  2. プロジェクトに編集したプロジェクトファイル(.csproj)

    )。NuGetパッケージのpropsファイルを使用するようにMSBuildを構成します。

    <Import Project="..\packages\Microsoft.TypeScript.MSBuild.2.1.4\build\Microsoft.TypeScript.MSBuild.props" Condition="Exists('..\packages\Microsoft.TypeScript.MSBuild.2.1.4\build\Microsoft.TypeScript.MSBuild.props')" /> 
    <!--<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.Default.props" Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.Default.props')" />--> 
    

    b)NuGetパッケージのターゲットファイルを使用するようにMSBuildを構成します。

    <Import Project="..\packages\Microsoft.TypeScript.MSBuild.2.1.4\build\Microsoft.TypeScript.MSBuild.targets" Condition="Exists('..\packages\Microsoft.TypeScript.MSBuild.2.1.4\build\Microsoft.TypeScript.MSBuild.targets')" /> 
    <!--<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets" Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets')" />--> 
    

    それがネットのコア事業である場合には、例えば、直接quickstart demoをTSCコマンドを使用している場合は、.xprojファイルのセクションに

    <TypeScriptToolsVersion>2.1.4</TypeScriptToolsVersion> 
    <TscToolPath>C:\Users\[user account]\.nuget\packages\Microsoft.TypeScript.MSBuild\2.1.4\tools\tsc</TscToolPath> 
    

をこのコードを追加:TSCを実行NPM TypeScript依存関係はpackage.jsonで定義されており、対応するTypeScriptはnpmインストールビルドステップ中にインストールされ、その後、対応するバージョンのtscツールを使用してnpmを起動するとコンパイルされます。

一方、TypeScript compiler packageがあるので、このパッケージをプロジェクトに組み込み、そのパッケージ内のtsc.exeツールでtypescriptファイルをコンパイルすることができます。

+0

お返事ありがとうございます。上記のpackage.jsonコマンドを追加して、私がより明確に何をしているかを示しています。これは私がtscコマンドを直接使用していることを意味すると思いますか?私は提案したようにTypeScriptのバージョンを2.0.6に変更しようとしましたが、ビルドは同じエラーメッセージで失敗します。上記の提案のうち、どのサブセットが私の状況に適用されたかはっきりしていませんでした。ありがとう – johnstaveley

+0

@johnstaveleyまず、node_modulesでtypescriptファイルをコンパイルする必要がありますか?コンパイルする必要がない場合は、tsconfig.json内のそのフォルダを除外してください。第2に、 "tscv"を "tsc --version"をpackage.jsonのScriptセクションに追加してから、npm build tsc/npm build step/taskを実行してください。第3に、ビルド定義の詳細ステップを提供します。このhttps://www.typescriptlang.org/docs/handbook/tsconfig-json.html node_modulesディレクトリによる –

+0

は、あなたのtsconfig.jsonの詳細コードは何@johnstaveleyデフォルト – johnstaveley

関連する問題