#simi #serve #build #testing #command-line-tool #static #browser

bin+lib simi-cli

A command line tool to help build, test, serve a Simi app

11 releases

0.1.8 May 4, 2019
0.1.7 Mar 22, 2019
0.1.6 Dec 7, 2018
0.1.5 Oct 9, 2018
0.0.0 Jul 19, 2018

#19 in #serve

29 downloads per month

Custom license

36KB
881 lines

simi-cli

Provide simi, a cli tool for creating and building simi frontend web app.

simi command is built on a Fedora system. I am not sure if it works on other systems or not.

simi build build the app. simi serve build and serve the app. The file watcher watches for changes in src/ and static/. simi test run tests in headless browser

Output

simi-cli will output at least 4 files: <app_name>.js, <app_name>_bg.js, <app_name>_bg.wasm and index.html. Where <app_name> is the package.name in your Cargo.toml (replace any - by _).

.simi.toml

You can specify some argument to simi-cli via this file.

output_path = "..."

This is the location where simi-cli will output built-files and copy crate-root/static/* to.

Default value for output_path is crate-root/simi-site, where crate-root is the folder where your Cargo.toml is.

index = "..."

This specifies the path of index.html file to be copied to output_path. Default value is crate-root/static/index.html. If it is not specified and the default does not exist then simi-cli will generate a default index.html.

scss = "..."

Specify the .scss file for simi-cli to compile into .css into output_path.

Default value is crate-root/static/style.scss.

If the index.html is auto generated one, simi-cli will add a <link> it for the compiled .css.

wasm_serve_path = "..."

If you want to serve your wasm-app files under a sub route, for example: example.com/static-files/wasm-app/*, then you must specify this argument like:

wasm_serve_path = "static-files/wasm-app"

Currently, the .wasm file is being loaded by fetch. If we do not supply the wasm_serve_path, fetch always try to load the file at root.

Your own index.html

If you want to provide your own index.html, you should place it at crate-root/static/index.html. simi-cli will just copy this file to output_path without any modification. Therefore, you must add:

<script src="<serve_path/app_name>_bg.js" type="module"></script>
                                          ^^^^^^^^^^^^^ <= Important!

in your index.html (see information about <app_name> in Section Output above).

If you also have a crate-root/static/style.scss, simi-cli still compile and output it to output_path, but you also must add:

<link rel='stylesheet' href='serve_path/style.css'>

to your index.html.

Contribution

Please record your changes in CHANGELOG.md

simi-cli TODO:

Currently, there is no tests for simi-cli. But if you want to contribute this crate, you are required to add tests (at least for your own changes).

  • serve Support some kind of auto rebuild when code changes
  • new need implementation

Dependencies

~17–27MB
~394K SLoC