के साथ टाइपस्क्रिप्ट-संकलित मॉड्यूल आयात करने में त्रुटि मैं हाल ही में टाइपस्क्रिप्ट द्वारा संकलित मॉड्यूल आयात करने के लिए system.js का उपयोग करना सीख रहा हूं। मॉड्यूल पहले require.js के लिए संकलित किए गए थे, और ठीक काम करता है।System.js
हालांकि, system.js में विलय करते समय, मॉड्यूल को सिस्टम-production.js लागू करते समय आयात नहीं किया जा सकता है। कंसोल कहता है
Uncaught (in promise) Error: Module instantiation did not call an anonymous or correctly named System.register.
Instantiating https://www.star.com/libs/js/klondike.js
Loading ./libs/js/klondike.js
at register-loader.js:203
t @ common.js:83
(anonymous) @ loader-polyfill.js:70
मुझे समझ में नहीं आता कि त्रुटि संदेश का कारण क्या है। और जब मैं system.src.js लागू करता हूं, तो त्रुटि संदेश नहीं होगा, लेकिन मैं आयातित मॉड्यूल में फ़ंक्शंस का उपयोग नहीं कर सकता। कोई भी कॉल अपरिभाषित वापस आ जाएगी। तो क्या मैंने गलत तरीके से काम किया?
नीचे स्रोत कोड है।
test.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
</body>
<!-- sys import -->
<script src="libs/js/system-production.js"></script>
<!--<script src="libs/js/system.src.js"></script>-->
<script>
System.import("./libs/js/klondike.js");
</script>
</html>
tsconfig.json
{
"compilerOptions": {
"module": "System",
"outFile": "../../js/klondike.js",
"target": "es5",
"sourceMap": true,
"removeComments": true
},
"include": [
"./*"
]
}
मुख्य मॉड्यूल: CardMoves.ts
//sys import
import * as DBJSN from "./debugJson";
import PokerCard from "./Cards";
let suits: string[] = ["spade", "heart", "club", "diamond"];
let cards: string[] = [, "A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"];
//sys export
export function createDeck() {
let playCards: PokerCard[] = new Array(DBJSN.settings.decks*52);
console.log(playCards);
for (let i=0; i<playCards.length; i++) {
playCards[i] = new PokerCard();
playCards[i].suit = suits[Math.floor(i % 52/13)];
playCards[i].card = i % 52 % 13 + 1;
}
return playCards;
}
Dependency1: Cards.ts
//sys export
export default class PokerCard {
private _suit: string;
private _card: number;
constructor() {}
//Suit getter and setter
get suit(): string {
return this._suit;
}
set suit(newSuit: string) {
try {
if (this._suit === undefined)
this._suit = newSuit;
else
throw "Suit value has been set.";
}
catch(e) {
console.log(e);
}
}
//Card getter and setter
get card(): number {
return this._card;
}
set card(newCard: number) {
try {
if (this._card === undefined)
this._card = newCard;
else
throw "Card value has been set.";
}
catch(e) {
console.log(e);
}
}
}
Dependency2: debugJson.ts
//sys export
export let settings = {
decks: 1,
cardsPerClick: 1,
timer: true
};
क्या यह समस्या हल हो गई थी? मेरी भी यही समस्या है। प्रलेखन संकलक कंपाइलर का उपयोग करके बंडल किए गए जेएस फ़ाइलों का उपयोग करने के तरीके पर बहुत अस्पष्ट है। – Kokodoko
एक स्क्रिप्ट टैग के माध्यम से बंडल सहित मेरे लिए चाल थी। –