Important
Webinizer is now in Beta trial. We'd greatly appreciate your feedback!
Webinizer is a collection of tools to convert native applications, such as these programmed by C/C++/Rust, to Web applications which are constructed by HTML/CSS/JavaScript and WebAssembly.
Webinizer consists of two parts; a core engine that analyzes the code and then either fixes or highlights issues, and a web frontend to configure projects and display results. This repo is the web frontend, for the core engine see the webinizer repo.
We also provide the webinizer-demo repo that holds the demo projects and build scripts to setup Webinizer.
The webclient is developed using Vue 3 + TypeScript + Vite.
npm run devto launch the webclient server indevelopmentmode and start at port 18888.npm run serveto launch the webclient server inproductionmode and start at port 18888.npm run lintto format code with ESLint.
It's preferred to use VS Code with Volar for development.
It's preferred to use Prettier formatter, along with Format on Save. Please setup the
Prettier and
ESLint extensions and
configure them accordingly.
NOTE that we set printWidth as 100 and tab width as 2.
Since TypeScript cannot handle type information for .vue imports, they are shimmed to be a generic
Vue component type by default. In most cases this is fine if you don't really care about component
prop types outside of templates. However, if you wish to get actual prop types in .vue imports
(for example to get props validation when using manual h(...) calls), you can enable Volar's Take
Over mode by following these steps:
- Run
Extensions: Show Built-in Extensionsfrom VS Code's command palette, look forTypeScript and JavaScript Language Features, then right click and selectDisable (Workspace). By default, Take Over mode will enable itself if the default TypeScript extension is disabled. - Reload the VS Code window by running
Developer: Reload Windowfrom the command palette.
You can learn more about Take Over mode here.
We welcome contributions to Webinizer webclient. You can find more details in CONTRIBUTING.md .