Initializing a project #
You might have been introduced to this command on the installation page, but let's dive into what the initialization script does for you in detail. You'll only ever need to run this script once when you first install Hydrogen on your project.
When run, it will prompt you to enter both an input and output directory. The input directory is where Hydrogen will look for your markup to scan. While you're only prompted for a single directory at first, you can add as many directories to this array as you want after Hydrogen has been initialized. The output directory is where Hydrogen will put its final CSS file, and any variable files you've requested. If you've enabled debugging, this directory will also be where Hydrogen places its log files.
The initialization script then creates a hydrogen.config.json
file in the directory you've run the script. This file contains everything you'll need to configure Hydrogen, and includes helpful defaults you can start with.
1
npx h2-init
Running a build #
The build script is what you'll use most when developing with Hydrogen. When executed, it runs the following to build your CSS:
- Find and validate your configuration file
- Parse the input you pass to it for Hydrogen attributes
- Assemble custom CSS based on the attributes you've used
- Run the resulting CSS through Lightning CSS for automated browser prefixing and file minification
- Generate a CSS variable file if you've requested one
- Export the final Hydrogen CSS file
The build script will also log any potential errors, typos, or warnings it finds to your console, so keep an eye out for them. If you need more robust debugging, you can enable log files in your configuration file using the debug setting.
1
npx h2-build
Compiling on the fly #
The watch command will automatically watch the directories you've defined in your input configuration for changes. When it detects a change, it will rerun Hydrogen's build script for you on the fly, so that changes are automatically compiled as you work.
1
npx h2-watch
Flags #
Hydrogen also offers the ability to customize certain build settings through the use of CLI flags. This allows you to run different variations of the build
or watch
scripts in unique contexts. Flags accept a boolean (true
or false
) value, and if provided no value, will default to true
.
Processing flags #
Processing flags allow you to control how the final CSS output is processed, including options for Lightning CSS.
--h2_prefix
will enable/disable browser prefixing.--h2_minify
will enable/disable file minification.--h2_error_recovery
will allow Lightning CSS to run regardless of errors.--h2_write_css_file
tells Hydrogen whether you want it to write a final CSS file
1
2
3
4
npx h2-build --h2_prefix
npx h2-build --h2_minify
npx h2-build --h2_error_recovery
npx h2-build --h2_write_css_file
Log flags #
Logging flags allow you to control whether debug log files are generated, as well as how verbose Hydrogen's console output is.
--h2_logs
will enable/disable log file generation for debugging.--h2_verbose
will toggle how much contextual information is displayed by Hydrogen in the console.
1
2
npx h2-build --h2_logs
npx h2-build --h2_verbose
Environment flags #
Environment flags are handy groups of pre-defined settings that optimize the build for development and production environments.
--h2_env_dev
groups the following settings:- Prefixing:
true
- Minification:
false
- Logs:
false
- Timers:
false
- Verbose:
true
--h2_env_prod
groups the following settings:- Prefixing:
true
- Minification:
true
- Logs:
false
- Timers:
false
- Verbose:
false
1
2
npx h2-build --h2_env_dev
npx h2-build --h2_env_prod