Newborn Programming Monsters

    npm-prepublish

    1.2.3 • Public • Published

    npm-prepublish

    Allows you use to use a continuous testing tool (such as Travis) to deploy to npm on every semver-y tag.

    This means you can use GitHub releases or git tags and have Travis deploy automagically for you to the npm registry.

    Warning

    In order to use this tool please set the version key from your package.json to 0.0.0 (this is for compatibility reasons so that people can still install your module via its git URL because npm will refuse to install any package that doesn't have a version number - issue raised here).

    If you really, really want to keep updating version in your package.json file you can use npm-prepublish --lax to skip this check).

    Installation (Codeship, Jenkins…)

    Change your test command to:-

    npm test && if [[ $CI_BRANCH =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]] ; then npm-prepublish && printf "_auth = $NPM_AUTH_TOKEN\nemail = $NPM_EMAIL\n" > .npmrc && npm publish; fi
    

    And ensure that the following environment variables are set for each job:-

    • NPM_AUTH_TOKEN — Your npm auth token (echo -n "username:password" | base64)
    • NPM_EMAIL — Your npm account's email address

    Installation (Travis)

    npm install --save-dev npm-prepublish
    language: node_js
    script: npm test
    node_js:
    - '0.10'
    - '0.11'
    before_deploy:
    - npm-prepublish --verbose
    deploy:
      provider: npm
      email: "YOUR EMAIL ADDRESS"
      api_key: "YOUR API KEY"
      on:
        all_branches: true
        tags: true
        node: '0.10'
        repo: YOUR-GITHUB-USERNAME/YOUR-GITHUB-REPOSITORY

    I recommend running travis setup npm and then adding the following lines to your .travis.yml file.

    before_deploy:
    - npm-prepublish --verbose

    And these too, under on:

    all_branches: true
    tags: true

    You only need to specify node if you are testing on multiple versions of node.

    Credits and collaboration

    The lead developer of npm-prepublish is Matt Andrews at FT Labs. All open source code released by FT Labs is licenced under the MIT licence. We welcome comments, feedback and suggestions. Please feel free to raise an issue or pull request.

    Keywords

    none

    Install

    npm i npm-prepublish

    DownloadsWeekly Downloads

    3,100

    Version

    1.2.3

    License

    MIT

    Last publish

    Collaborators

    • jakedchampion
    • mattandrews