2016-04-17 11 views
12

Angular2 TS Hızlı Başlatma işlemini takiben, projemde birçok klasörde yinelenen dosyalara sahip olurum. tarayıcı içinAngular2 için Kütük Tanımlayıcı Kümesi dosyaları

: ES6-şim için

typings/browser 
node_modules/angular2/typings/browser 

:

Bu inşa sırasında yinelenen Tanıtıcı hatalara yol açar
node_modules/angular2/typings/es6-shim 
typings/browser/ambient/es6-shim 
typings/main/ambient/es6-shim 

.

nasıl/önlemek yinelenen tanımlayıcı hatalarını yükselterek TS şekilde önlemek mı?

Dışlama listemdeki node_modules'ı ekledim, ancak içerimdeki Angular2'yi kullanıyorum, çünkü TSD bunları moduleResolution "node" nedeniyle geri dahil ediyor. Başka bir modülle değiştirmek "klasik" gibi bir çözünürlük değeri diğer sorunlara neden olur. 2

Bu benim için ne var

///<reference path="../../node_modules/angular2/typings/browser.d.ts"/> 
import {bootstrap} from 'angular2/platform/browser'; 
import {LocationComponent} from '../location/components/locationcomponent'; 
import {VideosComponent} from '../videos/components/videoscomponent'; 

bootstrap(LocationComponent, []) 
    .catch(err => console.error(err)); 

bootstrap(VideosComponent, []) 
    .catch(err => console.error(err)); 

GÜNCELLEME: İşte benim appcomponent.ts var

{ 
    "compilerOptions": { 
    "target": "es5", 
    "module": "system", 
    "moduleResolution": "node", 
    "sourceMap": true, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "removeComments": false, 
    "noImplicitAny": false, 
    "outDir": "./dist" 
    }, 
    "exclude": [ 
    "bower_components", 
    "node_modules", 
    "typings/main", 
    "typings/main.d.ts" 
    ] 
} 

GÜNCELLEME 1

:

Bu benim tsconfig.json olduğunu web proje dosyam.

<?xml version="1.0" encoding="utf-8"?> 
<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <PropertyGroup> 
    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0</VisualStudioVersion> 
    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath> 
    </PropertyGroup> 
    <Import Project="$(VSToolsPath)\DNX\Microsoft.DNX.Props" Condition="'$(VSToolsPath)' != ''" /> 
    <PropertyGroup Label="Globals"> 
    <ProjectGuid>3775534b-d08c-45f2-8d5a-4a4f6e91edb9</ProjectGuid> 
    <RootNamespace>MyProject</RootNamespace> 
    <BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)'=='' ">..\..\artifacts\obj\$(MSBuildProjectName)</BaseIntermediateOutputPath> 
    <OutputPath Condition="'$(OutputPath)'=='' ">..\..\artifacts\bin\$(MSBuildProjectName)\</OutputPath> 
    <SccProjectName>SAK</SccProjectName> 
    <SccProvider>SAK</SccProvider> 
    <SccAuxPath>SAK</SccAuxPath> 
    <SccLocalPath>SAK</SccLocalPath> 
    </PropertyGroup> 
    <PropertyGroup> 
    <SchemaVersion>2.0</SchemaVersion> 
    </PropertyGroup> 
<PropertyGroup Condition="'$(Configuration)' == 'Debug'"> 
    <TypeScriptTarget>ES5</TypeScriptTarget> 
    <TypeScriptJSXEmit>None</TypeScriptJSXEmit> 
    <TypeScriptCompileOnSaveEnabled>True</TypeScriptCompileOnSaveEnabled> 
    <TypeScriptNoImplicitAny>False</TypeScriptNoImplicitAny> 
    <TypeScriptModuleKind>CommonJS</TypeScriptModuleKind> 
    <TypeScriptRemoveComments>False</TypeScriptRemoveComments> 
    <TypeScriptOutFile /> 
    <TypeScriptModuleResolution>NodeJs</TypeScriptModuleResolution> 
    <TypeScriptOutDir /> 
    <TypeScriptGeneratesDeclarations>False</TypeScriptGeneratesDeclarations> 
    <TypeScriptNoEmitOnError>True</TypeScriptNoEmitOnError> 
    <TypeScriptSourceMap>True</TypeScriptSourceMap> 
    <TypeScriptMapRoot /> 
    <TypeScriptSourceRoot /> 
    <TypeScriptExperimentalDecorators>True</TypeScriptExperimentalDecorators> 
    </PropertyGroup> 
    <Target Name="FixTsBuildConfiguration" BeforeTargets="CompileTypeScript" > 
    <PropertyGroup> 
     <TypeScriptBuildConfigurations>$(TypeScriptBuildConfigurations.Replace("--moduleResolution NodeJs", "--moduleResolution node"))</TypeScriptBuildConfigurations> 
    </PropertyGroup> 
    </Target> 
    <ItemGroup> 
    <DnxInvisibleContent Include="bower.json" /> 
    <DnxInvisibleContent Include=".bowerrc" /> 
    <DnxInvisibleContent Include="package.json" /> 
    <DnxInvisibleFolder Include="wwwroot\bower_components\" /> 
    <DnxInvisibleFolder Include="wwwroot\node_modules\" /> 
    </ItemGroup> 
    <Import Project="$(VSToolsPath)\DNX\Microsoft.DNX.targets" Condition="'$(VSToolsPath)' != ''" /> 
</Project> 

GÜNCELLEME 3

Ben Visual Studio 2015 yılında Angular2 kurma başka bir yaklaşım gerektirdiğini öğrendim. Starting Angular 2 in ASP.NET 5 with TypeScript using Visual Studio 2015'daki adımları izledim ve artık herhangi bir yapı sorunu almadım.

+0

İki kez önyükleme yapmak için herhangi bir sebep var mı? Çoğu insan, altında diğer bileşenleri barındıran bir "uygulama" veya "kök" bileşenine sahiptir. –

+0

Ortak öğeler olmayan iki ayrı bileşenlerdir. Benim app bir SPA değil. Sunucu tarafında işleniyorlar. –

+0

@JonasArcangel Çözümünüzü bir cevap olarak gönderin. – Dinistro

cevap

0

Gereksiz dosyaları hariç tutmak için tsconfig.json dosyasında "filesGlob" girişini ekleyebilir. Örneğin:

"filesGlob": [ 
    "./src/**/*.ts", 
    "./test/**/*.ts", 
    "!./node_modules/**/*.ts", 
    "typings/browser.d.ts" 
    ] 
+0

Çalışmıyordu. Yinelenen tanımlayıcı sorunları hala var. Ne yapar ! sembol standı? Onsuz sahip olmayı denedim ve "node_modules/**/*. Ts" ile. Şanssız. –

+0

"!" sembol, dışlama –

+0

görüyorum. Yine de, yazıya dahil edilen aynı sebepten dolayı (lütfen güncellemeye bakın), benim bileşenimde referans gösterilmek üzere dahil ediliyor. –

8

typescript < = 1.6 Bunu arar ** olmadan **

"exclude": [ 
    "bower_components/**", 
    "node_modules/**", 
    "typings/main.d.ts", 
    "typings/main/**", 
], 

ile sizin tsconfig.json yılında node_modules ve typings/ana dosyaları dışlamak gerekir

node_modules typings/main adlı bir dosya ve dizinin kendisi değil.

typescript> typescript sürümlerinde 1,6

** 1,6 üzerinde gerekli değildir.

DÜZENLEME sizin appcomponent.ts referans yolu kaldırır. Bu tür yazıyı derlerken referans yollarına ihtiyacınız yoktur.

+0

Bunu denedim ve yinelenen tanımlayıcılara ek olarak bana daha fazla hata verdi. –

+0

@JonasArcangel bana bu hataları verebilir misiniz? Belki sorunun ne olduğunu görüyorum. – Dinistro

+0

@JonasArcangel Güncellenmiş cevabımı görün, hatanı buldum – Dinistro