Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Hot reload for Kha/Haxe js targets

NotificationsYou must be signed in to change notification settings

RblSb/KhaHotReload

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gif demo

Code patching without project rebuilding. Supported targets:

  • html5
  • debug-html5 (Electron)
  • krom? (not tested)

You can download this sample and test with VSCode (select and runHTML5-watch), or use CLI:

node Kha/make html5 --server&node Kha/make html5 --watch

Setup for personal project

  • CopyLibraries/hotml folder to your project folder.
  • Add#if hotml new hotml.client.Client(); #end at start ofMain.main().
  • Add this block tokhafile.js (beforeresolve(project);):
if(process.argv.includes("--watch")){// run only in watch modeproject.targetOptions.html5.unsafeEval=true;// allow eval in electronletlibPath=project.addLibrary('hotml');// client code for code-patchingproject.addDefine('js_classic');// to support constructors patching, optional// start websocket server that will send type diffs to clientconstpath=require('path');if(!libPath)libPath=path.resolve('./Libraries/hotml');constServer=require(`${libPath}/bin/server.js`).hotml.server.Main;// path to target build folder and main js file.constserver=newServer(`${path.resolve('.')}/build/${platform}`,'kha.js');callbacks.postHaxeRecompilation=()=>{server.reload();// parse js file every compilation}// for assets reloadingcallbacks.postAssetReexporting=(path)=>{server.reloadAsset(path);}}

Done. For VSCode you also need to copy.vscode/ launch option and tasks.

Debug hot-reload server

Libraries/hotml is separated VSCode project with personal build task for server side.Parser.hx has some static vars for detected types tracing.

Usage for other frameworks / pure Haxe projects

This khamake plugin does not depend on Kha ecosystem, except for khamake's file watcher andpostHaxeRecompilation callback, so you can use it as NodeJS app with any other build system. The only requirements is watch mode for js target and such callback.

Thanks

ToRobert Konrad with initial idea and implementation inKrom andKodeGarden.

About

Hot reload for Kha/Haxe js targets

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp