coreylight / iopipe-scripts

CLI toolbox for common scripts for IOpipe projects

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

iopipe-scripts 🛠📦

Scripts for IOpipe projects


Table of Contents

Installation

This module is distributed via [npm][npm] which is bundled with [node][node] and should be installed as one of your project's devDependencies:

npm install --save-dev iopipe-scripts

Usage

This is a CLI and exposes a bin called iopipe-scripts. I don't really plan on documenting or testing it super duper well because it's really specific to my needs. You'll find all available scripts in src/scripts.

This project actually dogfoods itself. If you look in the package.json, you'll find scripts with node src {scriptName}. This serves as an example of some of the things you can do with iopipe-scripts.

Overriding Config

Unlike react-scripts, iopipe-scripts allows you to specify your own configuration for things and have that plug directly into the way things work with iopipe-scripts. There are various ways that it works, but basically if you want to have your own config for something, just add the configuration and iopipe-scripts will use that instead of it's own internal config. In addition, iopipe-scripts exposes its configuration so you can use it and override only the parts of the config you need to.

This can be a very helpful way to make editor integration work for tools like ESLint which require project-based ESLint configuration to be present to work.

So, if we were to do this for ESLint, you could create an .eslintrc with the contents of:

{"extends": "./node_modules/iopipe-scripts/eslint.js"}

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

Or, for babel, a .babelrc with:

{"presets": ["iopipe-scripts/babel"]}

Or, for jest:

const { jest: jestConfig } = require('iopipe-scripts/config');
module.exports = Object.assign(jestConfig, {
  // your overrides here
});

Note: iopipe-scripts intentionally does not merge things for you when you start configuring things to make it less magical and more straightforward. Extending can take place on your terms. I think this is actually a great way to do this.

Thank You

Thanks to Kent C. Dodds and contributors for the base repository. https://github.com/kentcdodds/kcd-scripts

About

CLI toolbox for common scripts for IOpipe projects

License:Apache License 2.0


Languages

Language:JavaScript 100.0%