"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > फाइवएम एक्स टाइपस्क्रिप्ट

फाइवएम एक्स टाइपस्क्रिप्ट

2024-11-08 को प्रकाशित
ब्राउज़ करें:189

FiveM x TypeScript

फाइवएम ग्रैंड थेफ्ट ऑटो वी का एक संशोधन है जो आपको Cfx.re द्वारा संचालित अनुकूलित समर्पित सर्वर पर मल्टीप्लेयर चलाने में सक्षम बनाता है।

जब आप फाइवएम सर्वर विकसित करते हैं, तो आप संसाधन बना सकते हैं। ये संसाधन कई भाषाओं लूआ, सी# और जावास्क्रिप्ट में लिखे जा सकते हैं। इस लेख में हम यह देखने जा रहे हैं कि टाइपस्क्रिप्ट का उपयोग करके संसाधन कैसे बनाया जाए

प्रकार :

अपना कोड टाइप करने के लिए, हम फाइवएम के पीछे की कंपनी CFX.re द्वारा प्रदान किए गए दो पैकेजों का उपयोग करेंगे

  • @citizenfx/client
  • @citizenfx/सर्वर

ये पैकेज क्लाइंट-साइड या सर्वर-साइड कोड के अंदर प्रयोग करने योग्य प्रत्येक मूल विधि के लिए प्रकार प्रदान करते हैं।

tsconfig.json

{
  "compilerOptions": {
    "target": "ES2020",
    "module": "ESNext",
    "moduleResolution": "Bundler",
    // Location
    "outDir": "./dist",
    // Other
    "types": ["@citizenfx/client", "@types/node"],
    "lib": ["ES2020"],
    "strict": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "skipLibCheck": true
  },
  "include": ["src/**/*.ts"],
  "exclude": ["**/node_modules", "**/.test.ts"]
}

बंडल :

.ts फ़ाइलों के संकलन के बाद, आपको एक बंडल बनाना होगा जिसे फाइवएम सर्वर द्वारा लोड और चलाया जाएगा। दरअसल, फाइवएम केवल पथ, एफएस, जैसे मूल नोड.जेएस पैकेज की आवश्यकता की अनुमति देता है ...

ऐसा करने के लिए, हम रोलअप नामक टूल का उपयोग करते हैं, यह प्लगइन सिस्टम पर आधारित एक जावास्क्रिप्ट मॉड्यूल बंडलर है। मैंने वाइट, आरएसपैक जैसे अन्य टूल भी खोजे, लेकिन यह बहुत जटिल है। एक अन्य उपकरण जो अच्छा प्रदर्शन प्रदान करता है वह अगले बंडल के पीछे एक उपकरण टर्बोपैक होगा लेकिन फिलहाल यह अभी भी अगले के अंदर है।

rollup.config.mjs

import typescript from "@rollup/plugin-typescript";
import commonjs from "@rollup/plugin-commonjs";
import resolve from "@rollup/plugin-node-resolve";

export default {
  input: "src/index.ts",
  output: {
    dir: "dist",
    format: "cjs",
    sourcemap: false,
  },
  plugins: [resolve(), typescript(), commonjs()],
};

package.json :

{
  ...
  "devDependencies": {
    "@citizenfx/client": "2.0.9282-1",
    "@rollup/plugin-commonjs": "^26.0.1",
    "@rollup/plugin-node-resolve": "^15.2.3",
    "@rollup/plugin-typescript": "^11.1.6",
    "@types/node": "^20.14.12",
    "rollup": "^4.20.0",
    "tslib": "^2.6.3",
    "typescript": "^5.5.4"
  },
  ...
}

उदाहरण के लिए

init.ts

import { join } from "path"

export const init = () => {
    console.log("inited", join(".", "init.js"));
}

index.ts

import { init } from "./init"

on("onResourceStart", async (resName: string) => {
  if (resName === GetCurrentResourceName()) {
    init();
  }
});

रोलअप -सी चलाने के बाद, आपके पास केवल एक फ़ाइल होगी:

'use strict';

var path = require('path');

const init = () => {
    console.log("inited", path.join(".", "init.js"));
};

on("onResourceStart", async (resName) => {
    if (resName === GetCurrentResourceName()) {
        init();
    }
});

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/justinmartindev/ fivem-x-typescript-3pgd?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3