Rumah >hujung hadapan web >tutorial js >FiveM x TypeScript
FiveM adalah pengubahsuaian untuk Grand Theft Auto V yang membolehkan anda bermain berbilang pemain pada pelayan khusus tersuai, dikuasakan oleh Cfx.re.
Apabila anda membangunkan pelayan FiveM, anda boleh mencipta sumber. Sumber-sumber ini boleh ditulis dalam pelbagai bahasa Lua, C# dan JavaScript. Dalam artikel ini kita akan melihat cara membina sumber menggunakan TypeScript
Untuk menaip kod kami, kami akan menggunakan dua pakej yang disediakan oleh CFX.re syarikat di belakang FiveM
Pakej ini menyediakan jenis untuk setiap kaedah asli yang boleh digunakan dalam kod sebelah klien atau sebelah pelayan.
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"] }
Selepas penyusunan fail .ts, anda perlu mencipta satu berkas yang akan dimuatkan dan dijalankan oleh pelayan FiveM. Sesungguhnya, FiveM hanya membenarkan keperluan pakej node.js asli seperti laluan, fs, …
Untuk melakukannya, kami menggunakan alat bernama rollup, ia adalah pengikat modul JavaScript berdasarkan sistem pemalam. Saya juga meneroka alat lain seperti vite, rspack, tetapi ia terlalu rumit. Alat lain yang menawarkan prestasi yang baik ialah turbopack alat di belakang himpunan seterusnya tetapi ia masih di dalam sebelah buat masa ini.
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()], };
pakej.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(); } });
Selepas menjalankan rollup -c, anda hanya akan mempunyai satu fail :
'use strict'; var path = require('path'); const init = () => { console.log("inited", path.join(".", "init.js")); }; on("onResourceStart", async (resName) => { if (resName === GetCurrentResourceName()) { init(); } });
Atas ialah kandungan terperinci FiveM x TypeScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!