Hsu-scripts
CLI toolbox for common scripts for npm libraries.
Install
$ yarn install hsu-scripts eslint prettier --dev
Setup configs
Babel & Eslint
{
"babel": {
"presets": ["./node_modules/hsu-scripts/babel.js"]
},
"eslintConfig": {
"extends": ["./node_modules/hsu-scripts/eslint.js"]
}
}
Prettier
const config = require('hsu-scripts/prettier.config');
module.exports = config;
Usage
{
"scripts": {
"build": "hsu-scripts src",
"test": "NODE_ENV='test' jest --coverage",
"test:watch": "npm run test -- --watch",
"eslint": "eslint ./",
"format": "prettier --write '**/*.{js,json,md,css,yaml,yml}' '*.{js,json,md,css,yaml,yml}'"
}
}
$ npm run build
> hsu-scripts src
> rimraf es lib
> NODE_ENV='cjs' babel src --no-babelrc --config-file /hsu-scripts/.babelrc --out-dir lib --ignore __tests__,**/*.test.js,**/*.example.js
Successfully compiled 13 files with Babel.
> NODE_ENV='es' babel src --no-babelrc --config-file /hsu-scripts/.babelrc --out-dir es --ignore __tests__,**/*.test.js,**/*.example.js
Successfully compiled 13 files with Babel.
> flow-copy-source -i __tests__ -i **/*.test.js -i **/*.example.js src lib
> flow-copy-source -i __tests__ -i **/*.test.js -i **/*.example.js src es
API
> hsu-scripts -h
Usage: hsu-scripts <pattern> [options]
<pattern> Glob pattern to specify files.
Options:
--es-dir Output es module directory. [string] [default: "es"]
--cjs-dir Output commonjs module directory. [string] [default: "lib"]
-i, --ignore The list of glob paths to **not** compile
[array] [default: ["__tests__","**/*.test.js","**/*.example.js"]]
-h, --help Show help [boolean]
-v, --version Show version number [boolean]
Examples:
hsu-scripts src Simple example
hsu-scripts src --es-dir esm Custom es module directory
hsu-scripts src --cjs-dir 'cjs' Custom commonjs module directory
hsu-scripts src -i '__specs__' '**/*.spec.js'
For more information go to https://github.com/evenchange4/hsu-scripts
Development
- node 11.3.0
- yarn 1.12.3
- react >= 16
$ yarn install --pure-lockfile
Test
Use tools to build itself.
$ yarn run build
$ yarn run format
$ yarn run eslint
$ yarn run flow
Example library
Publish
$ npm version patch
$ git push
$ npm run changelog
CONTRIBUTING
- ⇄ Pull requests and ★ Stars are always welcome.
- For bugs and feature requests, please create an issue.
- Pull requests must be accompanied by passing automated tests.