Run flutter build web or dart pub run build_runner build and put the output
in another branch. An easy way to update gh-pages.
dart pub global activate peanutor
flutter pub global activate peanutpeanutor
flutter pub global run peanutThis will build your project into a temporary directory, and then it will update
the local gh-pages branch with the build output.
Read more about peanut in
this article.
$ peanut --help
Usage: peanut [<args>]
Arguments:
-d, --directories The directories that should be built.
(defaults to "web")
-b, --branch The git branch where the built content should
be committed.
(defaults to "gh-pages")
-c, --build-config The configuration to use when running
`build_runner`.
--[no-]release Flutter: enabled passes `--release`, otherwise
passes `--profile`.
Other: enabled passes `--release`, otherwise
passes `--no-release`.
(defaults to on)
-m, --message (defaults to "Built <directories>")
--[no-]source-branch-info Includes the name of the source branch and SHA
in the commit message
(defaults to on)
--[no-]version-info Includes the pubspec version of the package in
the commit message
--post-build-dart-script Optional Dart script to run after all builds
have completed, but before files are committed
to the repository.
--builder-options Builder options YAML or a path to a file
containing builder options YAML.
See the README for details.
--[no-]verbose Print more details when running.
--dry-run Verifies configuration and prints commands that
would be executed, but does not do any work.
--[no-]wasm Whether to build for WebAssembly (WASM).
--extra-args Extra arguments to provide to the target CLI
within a single string.
Examples:
--extra-args "--dart-define TEST_VAR=123"
--extra-args "--dart-define --base-href=/base/"
-h, --help Prints usage information.
--version Print the current version.peanut also supports a configuration file. Convenient if you have one-off
settings you'd rather not type every time you deploy.
The peanut.yaml from this repository:
# Configuration for https://pub.dev/packages/peanut
directories:
- example
# The Dart script to run after the build is complete, but before the changes are committed.
# This script is run in the root of the package.
# The script has access to the root of the build output directory as the first argument.
post-build-dart-script: tool/post_build.dart
# Build options to pass to `build_runner`.
# These are merged with any existing `build.yaml` file.
builder-options:
build_web_compilers|entrypoint:
compilers:
dart2wasm:
args:
- -O4
- --no-strip-wasm
dart2js:
args:
- --stage=dump-info-all
- --no-frequency-based-minification
- --no-source-maps
- -O4
build_web_compilers|dart2js_archive_extractor:
filter_outputs: falseYou can optionally specify a Dart script to run after the build is complete, but before the changes are committed.
post-build-dart-script: tool/post_build.dartThis script is run from the root of the package.
It receives two arguments:
- The path to a temporary directory which contains the build output. For
example, if you are building a single directory
web, the output will be in awebsubdirectory of this temporary directory. - A JSON-encoded map where keys are the source directories that were built, and values are the corresponding output sub-directories within the temporary directory from the first argument.
For example, if you run peanut -d web, the script will be called with:
args[0]:/tmp/peanut.xyz(a temporary path)args[1]:{"web":"."}
The index.html for the web build would be at
/tmp/peanut.xyz/index.html.
- https://github.com/dart-lang/sample-pop_pop_win/
- Output: https://dart-lang.github.io/sample-pop_pop_win/
- No custom configuration.
- https://github.com/kevmoo/pubviz
- Output: http://kevmoo.github.io/pubviz/
- Custom
peanut.yamlfile to specifybuilder-optionsandexampleas the source directory.
The easiest way to push your gh-pages branch to github (without switching from
your working branch) is:
git push origin --set-upstream gh-pagesTo create (or update) your local gh-pages branch to match what's on the
server.
git update-ref refs/heads/gh-pages origin/gh-pagesThis is also useful if you want to undo a peanut run.
For information about our publishing automation and release process, see https://github.com/dart-lang/ecosystem/wiki/Publishing-automation.