Use Rspack for faster builds

This commit is contained in:
uwap 2026-01-03 06:44:32 +01:00
parent 36b21e0260
commit 537dc46dc7
14 changed files with 1626 additions and 56 deletions

View file

@ -5,7 +5,7 @@
"author": "uwap",
"license": "MIT",
"scripts": {
"build": "npx spack",
"build": "npx rspack build",
"lint": "npx eslint src/",
"test": "jest --passWithNoTests",
"push": "yarn build && node ./upload.js"
@ -16,6 +16,8 @@
},
"devDependencies": {
"@eslint/js": "^9.39.2",
"@rspack/cli": "^1.7.0",
"@rspack/core": "^1.7.0",
"@stylistic/eslint-plugin": "^5.6.1",
"@swc/cli": "^0.7.9",
"@swc/core": "^1.15.5",

29
rspack.config.ts Normal file
View file

@ -0,0 +1,29 @@
import { defineConfig } from "@rspack/cli";
export default defineConfig({
entry: {
screeps: __dirname + "/src/index.ts",
},
output: {
path: __dirname + "/dist",
},
target: "node10.13",
module: {
rules: [{
test: /\.ts$/,
exclude: [/node_modules/],
loader: "builtin:swc-loader",
options: {
jsc: {
parser: {
syntax: "typescript",
},
},
},
type: "javascript/auto",
resolve: {
extensions: [".ts", ".js"],
},
}],
},
});

View file

@ -1,12 +0,0 @@
const { config } = require('@swc/core/spack')
module.exports = config({
entry: {
'screeps': __dirname + '/src/index.ts',
},
output: {
path: __dirname + '/dist'
},
module: {},
});

View file

@ -134,7 +134,7 @@ const createBuildSites = (room: Room) => {
}
};
export default profiler.registerFN(function RoomPlanner(room: Room) {
export default profiler.registerFN(function (room: Room) {
if (!room.controller?.my) {
return;
}
@ -468,4 +468,4 @@ export default profiler.registerFN(function RoomPlanner(room: Room) {
}
room.memory._planner = str;
}) as (room: Room) => void;
}, "RoomPlanner") as (room: Room) => void;

View file

@ -11,7 +11,7 @@ export const Build
});
export const runBuild = profiler.registerFN(
function runBuild(creep: Creep): TaskStatus {
function (creep: Creep): TaskStatus {
const task = creep.task;
if (task == null) {
return TaskStatus.DONE;
@ -31,4 +31,4 @@ export const runBuild = profiler.registerFN(
creep.travelTo(task.targetPos);
}
return TaskStatus.IN_PROGRESS;
}) as (creep: Creep) => TaskStatus;
}, "Tasks.Build.run") as (creep: Creep) => TaskStatus;

View file

@ -28,7 +28,7 @@ export const Harvest
});
export const runHarvest = profiler.registerFN(
function runHarvest(creep: Creep): TaskStatus {
function (creep: Creep): TaskStatus {
const task = creep.task;
if (task == null) {
return TaskStatus.DONE;
@ -47,4 +47,4 @@ export const runHarvest = profiler.registerFN(
creep.travelTo(task.targetPos);
}
return TaskStatus.IN_PROGRESS;
}) as (creep: Creep) => TaskStatus;
}, "Tasks.Harvest.run") as (creep: Creep) => TaskStatus;

View file

@ -11,7 +11,7 @@ export const Pickup
});
export const runPickup = profiler.registerFN(
function runPickup(creep: Creep): TaskStatus {
function (creep: Creep): TaskStatus {
const task = creep.task;
if (task == null) {
return TaskStatus.DONE;
@ -34,4 +34,4 @@ export const runPickup = profiler.registerFN(
return TaskStatus.IN_PROGRESS;
}
return TaskStatus.DONE;
}) as (creep: Creep) => TaskStatus;
}, "Tasks.Pickup.run") as (creep: Creep) => TaskStatus;

View file

@ -11,7 +11,7 @@ export const Repair
});
export const runRepair = profiler.registerFN(
function runRepair(creep: Creep): TaskStatus {
function (creep: Creep): TaskStatus {
const task = creep.task;
if (task == null) {
return TaskStatus.DONE;
@ -32,4 +32,4 @@ export const runRepair = profiler.registerFN(
return TaskStatus.IN_PROGRESS;
}
return TaskStatus.DONE;
}) as (creep: Creep) => TaskStatus;
}, "Tasks.Repair.run") as (creep: Creep) => TaskStatus;

View file

@ -24,7 +24,7 @@ export const Transfer
});
export const runTransfer = profiler.registerFN(
function runTransfer(creep: Creep): TaskStatus {
function (creep: Creep): TaskStatus {
const task = creep.task;
if (task == null) {
return TaskStatus.DONE;
@ -40,4 +40,4 @@ export const runTransfer = profiler.registerFN(
return TaskStatus.IN_PROGRESS;
}
return TaskStatus.DONE;
}) as (creep: Creep) => TaskStatus;
}, "Tasks.Transfer.run") as (creep: Creep) => TaskStatus;

View file

@ -11,7 +11,7 @@ export const Upgrade
});
export const runUpgrade = profiler.registerFN(
function runUpgrade(creep: Creep): TaskStatus {
function (creep: Creep): TaskStatus {
const task = creep.task;
if (task == null) {
return TaskStatus.DONE;
@ -28,4 +28,4 @@ export const runUpgrade = profiler.registerFN(
creep.travelTo(task.targetPos);
}
return TaskStatus.IN_PROGRESS;
}) as (creep: Creep) => TaskStatus;
}, "Tasks.Upgrade.run") as (creep: Creep) => TaskStatus;

View file

@ -27,7 +27,7 @@ export const Withdraw
});
export const runWithdraw = profiler.registerFN(
function runWithdraw(creep: Creep): TaskStatus {
function (creep: Creep): TaskStatus {
const task = creep.task;
if (task == null) {
return TaskStatus.DONE;
@ -57,4 +57,4 @@ export const runWithdraw = profiler.registerFN(
return TaskStatus.IN_PROGRESS;
}
return TaskStatus.DONE;
}) as (creep: Creep) => TaskStatus;
}, "Tasks.Withdraw.run") as (creep: Creep) => TaskStatus;

View file

@ -35,7 +35,7 @@ const runTask = profiler.registerFN((creep: Creep): TaskStatus => {
default:
return TaskStatus.DONE;
}
}, "runTask") as (creep: Creep) => TaskStatus;
}, "Tasks.run") as (creep: Creep) => TaskStatus;
Creep.prototype.run = function (generator?: (creep: Creep) => TaskData | null) {
const status = runTask(this);

View file

@ -10,7 +10,7 @@ export interface WorkerDefinition {
}
export const spawnWorkers = profiler.registerFN(
function spawnWorkers(spawn: StructureSpawn, workers: WorkerDefinition[]) {
function (spawn: StructureSpawn, workers: WorkerDefinition[]) {
for (const worker of workers) {
for (let i = 0; i < worker.requiredCreeps(spawn.room); i++) {
const ret = spawn.spawnCreep(
@ -21,10 +21,11 @@ export const spawnWorkers = profiler.registerFN(
}
}
}
}) as (spawn: StructureSpawn, workers: WorkerDefinition[]) => void;
}, "spawnWorkers") as
(spawn: StructureSpawn, workers: WorkerDefinition[]) => void;
export const runWorkers = profiler.registerFN(
function runWorkers(workers: WorkerDefinition[]) {
function (workers: WorkerDefinition[]) {
for (const worker of workers) {
for (const creep of Object.values(Game.creeps)) {
if (creep.spawning) {
@ -41,4 +42,4 @@ export const runWorkers = profiler.registerFN(
}
}
}
}) as (workers: WorkerDefinition[]) => void;
}, "runWorkers") as (workers: WorkerDefinition[]) => void;

1594
yarn.lock

File diff suppressed because it is too large Load diff