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?
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. –