2016-03-03 15 views
6

Quindi la maggior parte degli esempi che ho trovato sull'importazione di pacchetti jspm in dattiloscritto presupponevano che volessi utilizzare Systemjs per caricarli e interpretarli nel browser. Tuttavia, preferirei usare tsc per costruire i moduli commonjs e importare solo il codice js, dal momento che mi sembra l'approccio più generale e resistente agli errori.dattiloscritto: importazione librerie jspm

Quindi la mia struttura di directory assomiglia a questo:

src/index.ts 
jspm_packages/... 
config.js 
tsconfig.json 

Con TSconfig avente la seguente tenore:

{ 
    "compilerOptions": { 
    "target": "es5", 
    "module": "commonjs", 
    "noEmitOnError": true, 
    "noImplicitAny": false, 
    "rootDir": "src", 
    "outDir": "target/app", 
    "sourceMap": true, 
    "experimentalDecorators": true, 
    "emitDecoratorMetadata": true, 
    "declaration": true 
    }, 
    "exclude": [ 
    "jspm_packages", 
    "node_modules", 
    "typings", 
    "target" 
    ] 
} 

A scopo di verifica, ho installato angolare 2 con jspm install npm:angular2 e ho cercato di importare nel mio index.ts tramite import { bootstrap } from 'angular2/platform/browser';

Quando si esegue tsc, viene visualizzato l'errore

src/index.ts(1,27): error TS2307: Cannot find module 'angular2/platform/browser'. 

Ora mi chiedo, posso rendere i pacchetti jspm noti al dattiloscritto? Mi sento come se avessi provato tutto, rimuovendo jspm_packages dall'elenco di esclusione tsconfig, passando alla risoluzione del modulo nodo o alla generazione del modulo systemjs. Forse non ho trovato la combinazione giusta. Qualche suggerimento su cosa provare dopo?

+0

La prima linea dal sito JSPM è "_jspm è un gestore di pacchetti per il modulo universale SystemJS loader, costruito sulla parte superiore del modulo loader_ ES6 dinamico". Non penso che usare jspm senza system.js sia l'approccio giusto qui. –

risposta

2

Anche io sto lottando con questo stesso problema e dopo alcune ricerche, ho appreso che non ci sono buone soluzioni per consentirlo ancora.

Soluzioni alternative:

A) È possibile duplicare le dipendenze e installarlo con NPM. tsc non dovrebbe generare alcun errore dal momento della sua risoluzione da npm.

B) Cambia il tuo tsconfig.json e la mappa angolare al percorso jspm. Ad esempio

"baseUrl": ".", 
"paths": { 
    "angular2/*": [ 
     "jspm_packages/npm/[email protected]/*" 
    ], 
    "rxjs/*": [ 
     "jspm_packages/npm/[email protected]/*" 
    ] 
    } 

Vedere https://github.com/frankwallis/plugin-typescript/tree/master/examples/angular2 per un esempio completo.

nota che "baseurl" e "percorsi" non sono proprietà ufficiali e solo nella versione beta di compilatore dattiloscritto.

Il problema è attualmente monitorata qui: https://github.com/Microsoft/TypeScript/issues/6012

+0

Ho trovato questo troppo difficile, in quanto anche intellij non riconosce ancora l'opzione del percorso. Lo faccio al contrario e punto jspm a node_modules – rweng

Problemi correlati