FLUTTER ECOSYSTEM

kevmoo/peanut.dart

आसानी से अपने डार्ट वेब ऐप को गिटहब पेजेस पर बनाएं और डेप्लॉय करें

peanut.dart प्रोजेक्ट कवर
Stars
239
Forks
37
अंतिम पुश (UTC)
12 सित॰ 2026
प्रोजेक्ट स्थिति
सक्रिय
Kevin Moore GitHub avatar
GITHUB User

Kevin Moore ↗

A Product Manager at @google working on @dart-lang and @flutter web technologies

@dart-lang @flutter @googleSeattle, WA, USAआधिकारिक वेबसाइट ↗
भाषाएँDartHTML

तकनीकी विषय

इस रिपॉज़िटरी के पैकेज

उपयोग की गई निर्भरताएँ

निर्भरता सूची 26 आइटम

रैंकिंग

मूल README

यह अंग्रेज़ी मूल स्नैपशॉट है। नवीनतम सामग्री GitHub पर देखें।

README खोलें / बंद करें

Pub Package CI

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.

Install

dart pub global activate peanut

or

flutter pub global activate peanut

Run

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.

Options

$ 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.

Configuration file

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: false

Post-build Dart script

You 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.dart

This script is run from the root of the package.

It receives two arguments:

  1. 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 a web subdirectory of this temporary directory.
  2. 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.

Examples

  • 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 specify builder-options and example as the source directory.

Git tricks

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.

Publishing automation

For information about our publishing automation and release process, see https://github.com/dart-lang/ecosystem/wiki/Publishing-automation.