Wondering what’s next for npm?Check out our public roadmap! »


    1.0.0 • Public • Published


    What is Snowpack?

    Snowpack is a lightning-fast frontend build tool, designed for the modern web. It is an alternative to heavier, more complex bundlers like webpack or Parcel in your development workflow.

    The problem: manually customizing templates from create-snowpack-app was annoying.

    The solution: snowpack-start (snowpack-init was already taken). snowpack-start installs packages and generates configuration boilerplate so you can get to developing faster.

    New in 1.0.0

    🚨 Breaking Changes

    457a0e4 — Split options into active and passive

    ⚠️ Non-breaking Changes

    2ac6989 — Changed PostCSS config to minimize processing in dev

    🔧 Fixes

    20168dc — Removed mocha from tsconfig.json when not using WTR for react-typescript, svelte-typescript, and preact-typescript templates
    cf17db2 — Removed unnecessary postcss-cli dev dependency (#3412)

    🏔️ Snowpack Template Changes

    907fcf1 — Changed Snowpack config file type from .js to .mjs


    Node version ≥ 10 is required.

    $ npx snowpack-start [project-directory] [other-options]

    All CLI options (including project directory) are optional.

    With no CLI options:

    No CLI options

    With some CLI options:

    Some CLI options

    Using all CLI options and skipping prompts entirely is also possible.

    CLI Options


    Prompts will be displayed for active options not otherwise provided on the command line.

    Syntax Description
    -d, --defaults Use default options
    --load <files...> Load options from files
    -jsf, --js-framework <framework> JavaScript framework
    -cdf, --code-formatters <formatters...> Code formatters
    -ts, --typescript Use TypeScript
    -nts, --no-typescript Don't use TypeScript
    -s, --sass Use Sass
    -ns, --no-sass Don't use Sass
    -cssf, --css-framework <framework> CSS framework
    -b, --bundler <bundler> Bundler
    -p, --plugins <plugins...> Other plugins
    -l, --license <license> License
    -a, --author <author> Author (for MIT license)

    Option Valid Values
    JavaScript framework none/react/vue/svelte/preact/lit-element
    Code formatters none, eslint, prettier
    CSS framework none/tailwindcss/bootstrap
    Bundler webpack/snowpack/none
    Other plugins none, wtr, postcss, srs, sbs
    License mit/gpl/apache/none

    Value Plugin
    wtr @snowpack/web-test-runner-plugin
    postcss @snowpack/plugin-postcss
    srs @snowpack/plugin-run-script
    sbs @snowpack/plugin-build-script

    ⚠️ Don't install @snowpack/plugin-run-script or @snowpack/plugin-build-script unless you have a reason to! They're not required to run Snowpack and are for additional processing that isn't already handled by existing plugins.


    Passive options do not have prompts.

    Syntax Description
    --use-yarn Use Yarn
    --no-use-yarn Don't use Yarn
    --use-pnpm Use pnpm
    --no-use-pnpm Don't use pnpm
    --skip-tailwind-init Skip TailwindCSS init
    --no-skip-tailwind-init Don't skip TailwindCSS init
    --skip-eslint-init Skip ESLint init
    --no-skip-eslint-init Don't skip ESLint init
    --skip-git-init Skip git init
    --no-skip-git-init Don't skip git init

    Default Options

    On startup, snowpack-start will look for a .snowpackstart.js file in the home directory. If it exists, then the options in that file are loaded as default options. Otherwise, the built-in default options are used.

    Passive defaults will always be used regardless of whether the defaults flag has been passed on the command line. Active defaults will only be used if -d or --defaults has been passed.

    Using default options

    After CLI processing, the loaded defaults are applied as the initial selections/values of their corresponding prompts.

    Loading Options From Files

    Specify paths to files, and options will be loaded from them:

    Loading options from files

    Order Of Operations

    Defaults >> Files >> CLI >> Prompts

    Later options overwrite earlier ones:

    Overwriting previous options



    • Starting with Snowpack v3.1 and as of June 10, 2021 (v3.5.6), image/JSON imports break builds using the built-in bundler (#3109). Workaround here (copy to a JS file, then add ./<your-js-file>.js to plugins in snowpack.config.mjs).
    • eslint --init only supports React and Vue, additional setup required for Svelte, Preact, and LitElement.
    • eslint --init only installs packages with npm, no option to use Yarn or pnpm.


    Please report any other issues here.


    Portions of code have been adapted from create-snowpack-app and create-react-app.

    Official app templates from create-snowpack-app, with configurations from community templates used.




    npm i snowpack-start

    DownloadsWeekly Downloads






    Unpacked Size

    273 kB

    Total Files


    Last publish


    • avatar