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 peanut
or
$ flutter pub global activate peanut
$ peanut
or
$ flutter pub global run peanut
This 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)
--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.
--web-renderer The renderer implementation to use when
building for the web. Flutter web only.
[auto] (default) Use the HTML renderer on mobile devices, and
CanvasKit on desktop devices.
[canvaskit] This renderer uses WebGL and WebAssembly to
render graphics.
[html] This renderer uses a combination of HTML, CSS,
SVG, 2D Canvas, and WebGL.
--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
- 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.yaml
file to specifybuilder-options
andexample
as the source directory.
- https://github.com/flutter/samples/tree/master/web
- Output: https://flutter.github.io/samples/
- Custom
peanut.yaml
file to specifybuilder-options
, multiple source directories, and a custom post-build file.
- https://github.com/kevmoo/vote.dart/tree/master/vote_demo
The easiest way to push your gh-pages
branch to github (without switching from
your working branch) is:
$ git push origin --set-upstream gh-pages
To create (or update) your local gh-pages
branch to match what's on the
server.
$ git update-ref refs/heads/gh-pages origin/gh-pages
This 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.