Skip to content
📦Zero: Help Scout's zero config scripts
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.vscode
src
.eslintignore
.eslintrc
.gitignore
.npmrc
.prettierignore
.prettierrc
.travis.yml
LICENSE
README.md
babel.js
config.js
eslint.js
jest.config.js
jest.js
package-lock.json
package.json
prettier.js

README.md

📦 Zero

Build Status npm version node npm

Help Scout's zero config scripts

Zero is a "zero config" tool designed to make it easy to create, develop, test, build, and publish libraries.

It comes with a bunch of modern front-end tools, like Babel, Rollup, ESLint, Prettier, and Jest - All pre-configured to let you build stuff without fiddling with configuration files, scripts and commands.

📦  Zero

zero <command>

Example:
  zero build

Options:
  -V, --version     output the version number
  -h, --help        output usage information

Commands:
  build [options]   Builds project with Babel, Rollup, or TypeScript
  bundle [options]  Bundles project into single files with Rollup
  contributors      Generates markdown file with all contributors
  format [options]  Formats files with Prettier
  lint [options]    Lints files with ESLint
  new               Generate a new module
  pre-commit        Lints files before staging for commit
  prestart          Automatically install dependencies before starting
  proxy             Serves a browser proxy connected with proxypack
  release           Publish to npm
  setup [options]   Sets up tooling in project
  test [options]    Run test with Jest
  typecheck         Check types with TypeScript
  validate          Validates project with lint, tests, and build

Table of Contents

Installation

Add Zero to your project with this command:

npm install --save-dev @helpscout/zero

Or globally with:

npm install -g @helpscout/zero

Usage

Zero comes with a handful of scripts that you can add to your own package.json scripts:

"scripts": {
  "prestart": "zero prestart",
  "build": "zero build",
  "format": "zero format",
  "lint": "zero lint",
  "precommit": "zero pre-commit",
  "release": "zero release",
  "test": "zero test",
  "validate": "zero validate",
}

CLI

To use Zero as a CLI, install it globally, then run this command:

zero

Alternatively, you can run it with npx

npx @helpscout/zero

Extending

Zero can build, lint, format, and release out-of-the-box!

If you need to personalize Babel, ESLint, or Jest, Zero's got you covered. Add your own adjustments by extending Zero's based configurations.

Babel

Create a babel or .babelrc file with:

{"presets": ["@helpscout/zero/babel"]}

babel-core@7

As of version 1.0.0, Zero is now on @babel version 7. Your project may need to install babel-core@7.0.0-bridge.0. To do so, add that package to your package.json, or run:

npm install --save-dev babel-core@7.0.0-bridge.0

@babel/runtime

Zero does not use @babel/runtime, as it is still being used to compile projects on Babel 6. If you need an ultra-modern Babel 7 ready tool, check out kcd-scripts.

babel-plugin-react-app

Zero no longer comes with babel-plugin-react-app. The reason is because this module uses @babel/runtime with the new Babel 7 set up. If your project requires babel-plugin-react-app (e.g. building Docz), you'll need to add it yourself as a devDependencies.

ESlint

Create an .eslintrc file with:

{"extends": "./node_modules/@helpscout/zero/eslint.js"}

Note: for now, you'll have to include an .eslintignore in your project until this eslint issue is resolved.

Jest

Create a jest.config.js file with:

const jestConfig = require('@helpscout/zero/jest')

module.exports = Object.assign(jestConfig, {
  // your overrides here
})

Prettier

Create a .prettierrc.js file with:

module.exports = require("@helpscout/zero/prettier");

Thanks

Thanks to kcd-scripts and create-react-app for the inspiration and code!

You can’t perform that action at this time.