The Perl Advent Calendar needs more articles for 2022. Submit your idea today!


Dist::Zilla::Plugin::JSAN - a plugin for Dist::Zilla for building JSAN distributions


version 0.06


In dist.ini:

    name                = Sample-Dist
    abstract            = Some clever yet compact description
    author              = Clever Guy #1
    author              = Clever Guy #2
    license             = LGPL_3_0
    copyright_holder    = Clever Guy
    ; version provider
    first_version   = 0.0.1
    ; include the link to git repo and web page
    ; choose/generate files to include
    ; JSAN-specific configuration
    [JSAN]                          ; generate docs
    docs_markup         = mmd       ; default
    css_url             =  ; default
    static_dir          = static    ; default
    [JSAN::ReadmeFromMD]            ; should be after docs generation
    [JSAN::InstallInstructions]     ; add INSTALL file, describing the installation process
    [JSAN::Bundle]                  ; after docs generation to avoid docs for bundles
    ; `npm` configuration - package.json generation
    main                            = lib/Task/Sample/Dist/Core
    dependency                      = joose >= 3.14.0
    ; before release
    ; release
    [JSAN::NPM::Publish]        ; publish in `npm`
    sudo = 1
    ; after release
    [Git::Commit / Commit_Dirty_Files]
    format = %-9v %{yyyy-MM-dd HH:mm}d
    [Git::Commit / Commit_Changes]
    push_to = origin
    [JSAN::GitHubDocs]          ; after all commits to have clean workspace
    tweet_url     =
    tweet         = Released {{ '{{$DIST}}-{{$VERSION}} {{$URL}}' }}
    hash_tags     = #nodejs #npm


This is a plugin for distribution-management tool Dist::Zilla. It greatly simplifies the release process, allowing you to focus on the code itself.


Any usual Dist::Zilla plugins can be used. In the SYNOPSIS above we've used Dist::Zilla::Plugin::Git::Check and Dist::Zilla::Plugin::CheckChangesHasContent. Additionally several JSAN-specific plugins were added:

Dist::Zilla::Plugin::JSAN::Bundle - concatenate individual source files into bundles, based on information from Components.JS file

Dist::Zilla::Plugin::JSAN::StaticDir - moves the content of the static directory to the distribution folder

Dist::Zilla::Plugin::JSAN::GitHubDocs - updates the `gh-pages` branch with the documentation after each release

Dist::Zilla::Plugin::JSAN::NPM - generate `package.json` file for your distribution

Dist::Zilla::Plugin::JSAN::NPM::Publish - publish your distribution in `npm`

Dist::Zilla::Plugin::JSAN::PkgVersion - embed version number in the source files

Dist::Zilla::Plugin::JSAN::ReadmeFromMD - copies a main documentation file to the distribution root as

Dist::Zilla::Plugin::JSAN::InstallInstructions - generates INSTALL file in the root of distribution with installation instructions


This plugin allows you to easily start a new JSAN distribution. Read Dist::Zilla::Plugin::JSAN::Minter to know how.


Nickolay Platonov, <nplatonov at>


Please report any bugs or feature requests to or I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.


This module is stored in an open repository at the following address:


Copyright 2010 Nickolay Platonov, all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.


Nickolay Platonov <>


This software is copyright (c) 2011 by Nickolay Platonov.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.