iwa-cli
v1.1.0
Published
An ImmutableWebApp CLI using oclif and cosmiconfig
Downloads
1,544
Readme
iwa-cli
An ImmutableWebApp CLI using oclif and cosmiconfig
Installation
yarn add --dev iwa-cli
npm install --save-dev iwa-cli
Usage
Generate
- Create a
.iwarc
file in the root of your project. The format of this file should look like this.
{
"env": {
"all" : {
"COMMON_ATTRIBUTE": "DEFAULT_VALUE",
},
"production": {
"KEY": "VALUE_PRODUCTION"
},
"development": {
"KEY": "VALUE_DEVELOPMENT",
"COMMON_ATTRIBUTE": "DEVELOPMENT_SPESIFIC_VALUE",
}
}
}
- The
all
andproduction
environment cannot be omitted! - Specify as many environments as you need! In this case we have 2 (one for production and one for development)
- Create a script tag with
id="iwa"
in your index.html or template.index.html
<!DOCTYPE html>
<html lang="en">
<head></head>
<body>
<div id="menu"></div>
<main id="root"></main>
<div id="footer"></div>
<script id="iwa"></script> <!-- This line here is the one -->
</body>
</html>
- Make sure you don't have anything it, because it will get erased!
- Make sure it is placed before all you bundles!
- Run the
generate
command
iwa generate --env=production ./example/index.html # or the location where the file is located
The command will inject the configuration in the script tag:
<!DOCTYPE html>
<html lang="en">
<head></head>
<body>
<div id="menu"></div>
<main id="root"></main>
<div id="footer"></div>
<script id="iwa">window.env = {"COMMON_ATTRIBUTE": "DEFAULT_VALUE", "KEY":"VALUE_PRODUCTION"}</script>
</body>
</html>
Override
You can override a variable with process.env variables:
KEY="VALUE_PROCESS" iwa generate ./example/index.html
Remove
You can also erase the configuration from a file, by using the remove
command
iwa remove ./example/index.html
Commands
iwa check [INPUT]
Checks HTML file for injected iwa config, useful in a pre-commit hook to prevent commiting injected iwa-config.
USAGE
$ iwa check [INPUT]
OPTIONS
-d, --verbose
-h, --help show CLI help
-s, --isStaged Checks only staged files, and will throw error if config found
-v, --version show CLI version
ALIASES
$ iwa check
$ iwa c
See code: src/commands/check.ts
iwa generate [INPUT] [OUTPUT]
Generates a HTML file, where window.env configuration is injected
USAGE
$ iwa generate [INPUT] [OUTPUT]
OPTIONS
-c, --config=config Location to look for iwa configuration
-d, --verbose
-e, --env=env [default: production]
-h, --help show CLI help
-v, --version show CLI version
ALIASES
$ iwa gen
$ iwa g
See code: src/commands/generate.ts
iwa remove [INPUT]
Removes injected configuration from an HTML file
USAGE
$ iwa remove [INPUT]
OPTIONS
-h, --help show CLI help
-v, --version show CLI version
ALIASES
$ iwa rm
See code: src/commands/remove.ts