javascript - Hur man åtgärdar ''TypeError: System.config är inte en funktion''
Jag lär mig TypeScript och idag installerade jag SystemJS så att jag kunde importera några filer. Först importerade jag bara huvudfilen som behövde köras, dvs app.js, i index.html
<script src="node_modules/systemjs/dist/system.js"></script>
<script>
System.import('app.js');
</script>
Men jag fick detta fel: https://i.sstatic.net/lz7Hm.png
Så jag förvandlade min HTML-kod till detta:
<script src="node_modules/systemjs/dist/system.js"></script>
<script>
System.config({
baseURL: '/',
packages: {
"/ts": {
defaultExtension: 'js'
}
}
});
System.import('app.js');
</script>
Nu får jag detta fel: https://i.sstatic.net/RS0k7.png
package.json:
{
"name": "ts",
"version": "1.0.0",
"description": "",
"main": "app.js",
"dependencies": {
"jquery": "^3.4.0",
"systemjs": "^3.1.2",
"typescript": "^3.4.2"
},
"devDependencies": {
"lite-server": "^2.4.0"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "lite-server"
},
"author": "",
"license": "ISC"
}
app.ts: console.log("Hej")
Jag sitter fast vid denna punkt. All hjälp skulle uppskattas. Tack på förhand.
Svar #1
Jag antar att du av misstag har uppgraderat till senaste system.js... SystemJS 2.0 stöder inte System.Config. Se https://guybedford.com/systemjs-2.0
Det görs istället med https://github.com/systemjs/systemjs/blob/2.0.0/docs/package-name-maps.md
Om du har lyckats uppdatera koden vid det här laget, kan du lika gärna posta det uppdaterade exemplet här för allas bruk.
Svar #2
Leta upp system.js och lägg System.config() i den, detta skulle fixa felet.
<script src="node_modules/systemjs/dist/system.js">
System.config({
baseURL: "/",
packages: {
"/": {
defaultJSExtensions: true
}
}
})
System.import("app.js")</script>
<script>
