javascript - Utvikling på Angular2 med TS, men uten NPM
Alle guider foreslår å installere npm, men jeg leter etter en måte uten det.
Det finnes Angular2-filer tilgjengelig, men ingen av dem er TypeScript-kode.
Så hva må jeg gjøre? Trenger jeg Angular2.ts eller spesifikke Angular2-xx.js og .d.ts-filer?
OPPDATERING: Jeg har lastet ned Angular2 gjennom NPM og fått hele kildekoden, hvor det er vanskelig å finne spesifikke ting. Å søke etter .d.ts for Angular2 ga ingen resultater. Mange .ts og .d.ts-filer finnes i den enorme samlingen av kode.
Svar #1
Faktisk er disse filene en samlet versjon av Angular2 og dens avhengigheter. De kan brukes innenfor en applikasjon skrevet med TypeScript. Faktisk kan ikke TypeScript brukes direkte i nettlesere. Du må forhåndsbehandle dem for å kompilere dem til ES-kode med TypeScript-kompilatoren, eller transpilere dem direkte i nettleseren med TypeScript-biblioteket.
Dette kan konfigureres direkte i SystemJS gjennom dets transpiler-konfigurasjonsattributt (se nedenfor).
Først legger du ganske enkelt til disse filene i HTML-filen din:
<script src="https://code.angularjs.org/2.0.0-beta.2/angular2-polyfills.js"></script>
<script src="https://code.angularjs.org/tools/system.js"></script>
<script src="https://code.angularjs.org/tools/typescript.js"></script>
<script src="https://code.angularjs.org/2.0.0-beta.2/Rx.js"></script>
<script src="https://code.angularjs.org/2.0.0-beta.2/angular2.dev.js"></script>
<script src="https://code.angularjs.org/2.0.0-beta.2/http.dev.js"></script>
Hvis du vil implementere en applikasjon uten NPM, kan du transpile dine TypeScript-filer i nettleseren. Det er slik vi gjør når vi bruker plunkr. For dette trenger du å konfigurere SystemJS som beskrevet nedenfor:
<script>
System.config({
transpiler: 'typescript',
typescriptOptions: {
emitDecoratorMetadata: true
},
packages: {
'app': {
defaultExtension: 'ts'
}
}
});
System.import('app/main')
.then(null, console.error.bind(console));
</script>
Vær nøye med å definere dine TypeScript-filer under en app-mappe
Her er en enkel (og komplett) plunkr som beskriver hvordan man gjør det: https://plnkr.co/edit/vYQPePG4KDoktPoGaxYu?p=info.
Du kan laste ned den tilsvarende koden og bruke koden lokalt med en statisk HTTP-server som http-server uten å bruke NPM. Dette kan være et godt utgangspunkt for ditt brukstilfelle...
Rediger
Hvis TypeScript-filene dine kompileres av VS, må du tilpasse SystemJS-konfigurasjonen, som beskrevet nedenfor:
<script>
System.config({
packages: {
app: {
defaultExtension: 'js',
}
}
});
System.import('app/boot')
.then(null, console.error.bind(console));
</script>
På denne måten vil SystemJS laste inn JS-filene dine når du gjør et import. For eksempel: System.import('app/boot') vil bruke app/boot.js og ikke TypeScript-filen
