Improve build configuration and instructions

This commit is contained in:
Merijn Hendriks 2021-12-29 00:37:50 +01:00
parent cd14dce0d7
commit 0fbefbe628
9 changed files with 101 additions and 22 deletions

1
.gitignore vendored
View File

@ -5,6 +5,7 @@ package-lock.json
.vs .vs
bin bin
obj obj
*.user
# ---> Node # ---> Node
# Logs # Logs

12
.vscode/tasks.json vendored
View File

@ -2,7 +2,7 @@
"version": "2.0.0", "version": "2.0.0",
"tasks": [ "tasks": [
{ {
"label": "release: server", "label": "build: server",
"type": "shell", "type": "shell",
"linux": { "linux": {
"command": "npm --prefix Server run release:any" "command": "npm --prefix Server run release:any"
@ -11,20 +11,20 @@
"command": "npm --prefix Server run release:any" "command": "npm --prefix Server run release:any"
}, },
"windows": { "windows": {
"command": "npm --prefix Server run release:win" "command": "npm --prefix Server run build"
} }
}, },
{ {
"label": "release: launcher", "label": "build: launcher",
"type": "shell", "type": "shell",
"linux": { "linux": {
"command": "dotnet publish Launcher/Launcher.csproj --nologo --verbosity minimal --runtime linux-x64 --configuration Release -p:PublishSingleFile=true --no-self-contained" "command": "dotnet publish Launcher/Launcher.csproj /p:PublishProfile=Launcher/Properties/PublishProfiles/linux-x64.pubxml"
}, },
"osx": { "osx": {
"command": "dotnet publish Launcher/Launcher.csproj --nologo --verbosity minimal --runtime osx-x64 --configuration Release -p:PublishSingleFile=true --no-self-contained" "command": "dotnet publish Launcher/Launcher.csproj /p:PublishProfile=Launcher/Properties/PublishProfiles/osx-x64.pubxml"
}, },
"windows": { "windows": {
"command": "dotnet publish Launcher/Launcher.csproj --nologo --verbosity minimal --runtime win-x64 --configuration Release -p:PublishSingleFile=true --no-self-contained" "command": "dotnet publish Launcher/Launcher.csproj /p:PublishProfile=Launcher/Properties/PublishProfiles/win-x64.pubxml"
} }
} }
] ]

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
https://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration>Release</Configuration>
<Platform>Any CPU</Platform>
<PublishDir>bin\Release\net6.0\publish\linux-x64\</PublishDir>
<PublishProtocol>FileSystem</PublishProtocol>
<TargetFramework>net6.0</TargetFramework>
<RuntimeIdentifier>linux-x64</RuntimeIdentifier>
<SelfContained>false</SelfContained>
<PublishSingleFile>True</PublishSingleFile>
</PropertyGroup>
</Project>

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
https://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration>Release</Configuration>
<Platform>Any CPU</Platform>
<PublishDir>bin\Release\net6.0\publish\osx-x64\</PublishDir>
<PublishProtocol>FileSystem</PublishProtocol>
<TargetFramework>net6.0</TargetFramework>
<RuntimeIdentifier>osx-x64</RuntimeIdentifier>
<SelfContained>false</SelfContained>
<PublishSingleFile>True</PublishSingleFile>
</PropertyGroup>
</Project>

View File

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
https://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration>Release</Configuration>
<Platform>Any CPU</Platform>
<PublishDir>bin\Release\net6.0\publish\win-x64\</PublishDir>
<PublishProtocol>FileSystem</PublishProtocol>
<TargetFramework>net6.0</TargetFramework>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<SelfContained>false</SelfContained>
<PublishSingleFile>True</PublishSingleFile>
<PublishReadyToRun>False</PublishReadyToRun>
</PropertyGroup>
</Project>

View File

@ -7,20 +7,9 @@ Prototype server for Escape From Tarkov
The goal is to provide a minimal implementation to allow people to play an offline raid. The goal is to provide a minimal implementation to allow people to play an offline raid.
It does not aim at being correct, fast or moddable but instead to be simple. It does not aim at being correct, fast or moddable but instead to be simple.
## Requirements
- visual studio 2022
- node.js workload
- .net desktop workload
## Setup ## Setup
VS2022 > Solution Explorer > Server > npm > install npm Packages See [getting started](docs/getstarted.md) for more information.
## Build
1. VSCode > Terminal > Run Task > release: launcher
2. VSCode > Terminal > Run Task > release: server
## License ## License

View File

@ -4,16 +4,16 @@
"version": "1.0.0", "version": "1.0.0",
"license": "NCSA", "license": "NCSA",
"scripts": { "scripts": {
"build": "tsc --build", "build:ts": "npx tsc --build",
"build:babel": "npx babel src --extensions \".ts\" --out-dir obj/babel", "build:babel": "npx babel src --extensions \".ts\" --out-dir obj/babel",
"build:bundle": "npx browserify --debug --node obj/babel/main.js > obj/server.js", "build:bundle": "npx browserify --debug --node obj/babel/main.js > obj/server.js",
"build:exe": "npx nexe -t x64-14.15.3 -i obj/server.js -o bin/Server.exe", "build:exe": "npx nexe -t x64-14.15.3 -i obj/server.js -o bin/Server.exe",
"build:icon": "cd node_modules/rcedit/bin && rcedit-x64.exe ../../../bin/Server.exe --set-icon ../../../assets/images/favicon.ico", "build:icon": "cd node_modules/rcedit/bin && rcedit-x64.exe ../../../bin/Server.exe --set-icon ../../../assets/images/favicon.ico",
"debug": "npm run build:babel && npm run build:bundle && node --trace-warnings obj/server.js", "build": "npm run release:any && npm run build:icon",
"debug": "npm run release:any && node --trace-warnings obj/server.js",
"lint:fix": "npx eslint --fix \"./src/**/*.ts\"", "lint:fix": "npx eslint --fix \"./src/**/*.ts\"",
"lint:check": "npx eslint \"./src/**/*.ts\"", "lint:check": "npx eslint \"./src/**/*.ts\"",
"release:any": "npm run build:babel && npm run build:bundle && npm run build:exe", "release:any": "npm run build:ts && npm run build:babel && npm run build:bundle && npm run build:exe"
"release:win": "npm run release:any && npm run build:icon"
}, },
"dependencies": { "dependencies": {
"source-map-support": "^0.5.0", "source-map-support": "^0.5.0",

35
docs/getstarted.md Normal file
View File

@ -0,0 +1,35 @@
# Getting started
## Visual Studio 2022
### Requirements
- node.js workload
- .net desktop workload
### Setup
Solution Explorer > Server > npm > install npm Packages
### Build
1. Solution Explorer > Launcher > Publish
2. Solution Explorer > Server > build
## Visual Studio Code
### Requirements
- visual studio code
- dotnet 6.0 sdk
- nodejs 14.0.0 or newer
- npm
### Setup
`npm --prefix Server install`
### Build
1. Terminal > Run Task > release: launcher
2. Terminal > Run Task > release: server

View File

@ -1,5 +1,10 @@
# Notes # Notes
## Environment
- `build` script in `package.json` is configured for `Visual Studio 2022`'s special needs.
Building the server project will not work otherwise.
## Implementation ## Implementation
- EFT http request / response does not respect headers, data is always zlibbed - EFT http request / response does not respect headers, data is always zlibbed