2015-06-18 8 views
53

Ho riscontrato il seguente problema nell'esecuzione delle seguenti versioni di JSPM con Angular2 e SystemJS (Versioni: [email protected] con JSPM @ 0.16.0-beta.2 e [email protected]) che una volta il dattiloscritto è stato compilato (senza errori) ottengo il seguente errore nel browser:Angular2 + Jspm.io: lo shim reflect-metadata è richiesto quando si usano i decoratori di classe

/jspm_packages/npm/[email protected]/src/util/decorators.js:70 Uncaught reflect-metadata shim is required when using class decorators 

Ora in cui includo manualmente i file di Reflect.js : \ jspm_packages \ npm \ [email protected] \ Reflect.js che il problema scompare, ma il problema successivo emerge dicendo che la lista non è definita all'interno di un altro file angolare.

Vedere lo src bitbucket sotto per i file di configurazione (codice src) da entrambi i system.js e dattiloscritto/jspm.io

https://bitbucket.org/schippie/angular-2-jspm-hello-world/src/8af83f2066e5e3e9eede7db495545234f3b0c04a

Quello che mi chiedo è se è attualmente anche possibile usare JSPM insieme a system.js per recuperare tutti i pacchetti angolari necessari per il normale funzionamento angolare. Visto che la configurazione per system.js vuol stato chiaramente che angolare dipende da esso:

"npm:[email protected]": { 
    "fs": "github:jspm/[email protected]", 
    "path": "github:jspm/[email protected]", 
    "process": "github:jspm/[email protected]", 
    "reflect-metadata": "npm:[email protected]", 
    "rx": "npm:[email protected]", 
    "url": "github:jspm/[email protected]", 
    "zone.js": "npm:[email protected]" 
}, 

Ma non vengono recuperati (guardando la scheda di rete)

risposta

13

Robwormald ha scritto una spiegazione ben dettagliato che copre la problemi che le persone potrebbero avere a questo punto e ora cercando di ottenere l'alfa 27 angolare per lavorare con jspm e typescript https://gist.github.com/robwormald/429e01c6d802767441ec

+0

UPD 15-05-2016, per Angular2-rc1 dopo aver installato ** reflect-metadata ** per risolvere questo problema ora ricevo errori dal router – shershen

65

Sì, quello che stai cercando è possibile e funziona bene. Sembra che tu abbia le dipendenze giuste. Penso che manchi solo il seguente, che deve essere all'inizio del dattiloscritto di primo livello o del file JavaScript. In particolare, questi devono essere prima della prima linea è che carichi angolari.

import 'zone.js'; 
import 'reflect-metadata'; 

(Gli altri punti di risposta ad una dettagliata, ma off-site spiegazione.)

+3

Non dimenticare di aggiungere 'jspm install reflect-metadata zone.js' . –

+3

Mentre funziona, se si raggruppa il sorgente usando bundle-sfx, esso funziona ma genera un errore di '' dimensione massima pila chiamate superata> '. Penso che, dal momento che angular2 include anche reflect-metadata e zone.js come dipendenze sta causando una dipendenza circolare da qualche parte. –

+0

@EvanPlaice Poiché penso che alfa 46/45 raggruppano il file zone.js con angularjs. Penso che hai ancora bisogno di es6-shim e rifletti i metadati. –

4

Se questo problema si verifica in un ambiente 4.4+ angolare, può aiutare se si riavvia ng serve.

Problemi correlati