Problemas con la importación de clases desde módulos de Angular 2 con Typecript 1.7
Tengo problemas para entender cómo importar clases desde módulos en TypeScript, específicamente para Angular 2 en Visual Studio 2015 (actualización 1) con TypeScript 1.7.
En todas partes de la documentación de Angular 2 veo declaraciones de importación como:import {Component} from 'angular2/core';
. Estos archivos están ennode_modules/angular2/*
. Lo que hace justoangular2/*
¿trabajo?
Solo puedo deshacerme de los errores en Visual Studio cuando tengo una ruta relativa desde el directorio de la aplicación, como:./../node_modules/angular2/platform/browser';
. Esto corrige los errores de compilación de Visual Studio, pero cuando intento ejecutar la aplicación conSystem.import('app/boot')
Recibo un montón de errores como este:
system.src.js: 1049 OBTENERhttp: // localhost: 8080 / node_modules / angular2 / platform / browser 404 No encontrado)
Otro problema es poder usar declaraciones como:import {SearchComponent} from './Components/Search/search.component';
en Visual Studio, pero cuando lo ejecuto hay muchos errores GET ensystem.src.js:2476
.
Pensé que establecer eldefaultExtension: 'js'
paraSystem.config
debería haberse ocupado de ese problema.
ACTUALIZAR Aquí están todos los archivos que creo que son relevantes:
views / home / index.html
<script src="node_modules/es6-shim/es6-shim.js"></script>
<script src="node_modules/angular2/bundles/angular2-polyfills.js"></script>
<script src="node_modules/systemjs/dist/system.src.js"></script>
<script src="node_modules/rxjs/bundles/Rx.js"></script>
<script src="node_modules/angular2/bundles/angular2.dev.js"></script>
System.config({
packages: {
app: {
format: 'register',
defaultExtension: 'js'
}
}
});
System.import('app/app')
.then(null, console.error.bind(console));
test.csproj
<TypeScriptToolsVersion>1.7</TypeScriptToolsVersion>
<TypeScriptExperimentalDecorators>True</TypeScriptExperimentalDecorators>
<TypeScriptModuleResolution>Node</TypeScriptModuleResolution>
<TypeScriptTarget>ES5</TypeScriptTarget>
<TypeScriptJSXEmit>None</TypeScriptJSXEmit>
<TypeScriptCompileOnSaveEnabled>True</TypeScriptCompileOnSaveEnabled>
<TypeScriptNoImplicitAny>False</TypeScriptNoImplicitAny>
<TypeScriptModuleKind>CommonJS</TypeScriptModuleKind>
<TypeScriptRemoveComments>False</TypeScriptRemoveComments>
<TypeScriptOutFile />
<TypeScriptOutDir />
<TypeScriptGeneratesDeclarations>False</TypeScriptGeneratesDeclarations>
<TypeScriptNoEmitOnError>True</TypeScriptNoEmitOnError>
<TypeScriptSourceMap>True</TypeScriptSourceMap>
<TypeScriptMapRoot />
<TypeScriptSourceRoot />
typings / tsd.d.ts
export * from './../node_modules/angular2/core';
export * from './../node_modules/angular2/common';
export * from './../node_modules/angular2/http';
export * from './../node_modules/angular2/router';
export * from './../node_modules/angular2/platform/browser';
Estructura de archivo:
app/
app.ts
components/
models/
services/
node_modules/ (npm install using Angular 2 quickstart's package.json)
angular2/ (not all the files listed)
bundles/ (not all the files listed)
angular2.dev.js
platform/
src/
ts/
typings/
common.d.ts
core.d.ts
http.d.ts
router.d.ts
es6-module-loader/
es6-promise/
es6-shim/
rxjs/
systemjs/
zone.js/
typescript/ (not sure if this needs to be here)
No estoy familiarizado con TypeScript, ¿podría haber un error causado por diferentes sistemas de módulos de Typecript? Angular 2 recomienda System.config configurarse conformat: 'register'
perohttps://www.npmjs.com/package/angular2 dice que los archivos se pueden consumir usando CommonJs.
Con estos archivos, obtengo estos dos errores de consola:
app.ts:1 Uncaught ReferenceError: require is not defined(anonymous function) @ app.ts:1
angular2-polyfills.js:143 Uncaught TypeError: Cannot read property 'split' of undefined