typescript - Hvordan fikser jeg "ReferenceError: System is not defined" når jeg kjører skript fra kommandolinjen?
Jeg prøver å lage TypeScript på serversiden (eksempelcode import mongoose from 'mongoose'; ) og jeg vet at jeg skal få systemjs initialisert først, men jeg vet ikke hvordan jeg gjør det i et serverside-skript.
tsconfig.json
{
"compilerOptions": {
"target": "es5",
"module": "system",
"moduleResolution": "node",
"noImplicitAny": true,
"removeComments": true,
"preserveConstEnums": true,
"sourceMap": true
},
"exclude": [
"node_modules",
"typings/main",
"typings/main.d.ts"
]
}
Svar #1
Hvis du vil bruke modulen 'system' på serversiden, må du installere systemjs-pakken og konfigurere den:
import System = require('systemjs');
System.config({
...
});
System.import(...);
Men etter min mening ville det være bedre å rette seg mot commonjs og kjøre det 'nativt' i node.js uten noen ekstra avhengigheter.
Som en bonus - du kan også kjøre CommonJS-moduler i nettleseren ved å bruke SystemJS som lastemotor - det støtter å laste dem rett ut av boksen.
[REDIGER]
Merk at node.js er bygget med commonjs som modulstandard. Derfor kan du bruke 'system'-moduler ved hjelp av SystemJS, men bare 'inne i' hovedprogrammet ditt som må være i commonjs-format for å kunne kjøre i nodejs.
Svar #2
Jeg løste dette ved å sette "module" : "commonjs" i tsconfig.json. Commonjs er det historiske node-modulsystemet.
