Single-command, zero-config tooling for Node.js projects
blogfoster-scripts
is a wrapper around some of our favorite JavaScript tools. It unifies developer experience across multiple Node.js projects by hiding other tools and their configs. A CLI with subcommands like lint
, format
, and build
lets us manage tooling for multiple projects much easier. Also, developers don't need to waste time by copy-pasting boilerplate code around just to get tooling working. For more details, check out this blog post.
We recommend installing blogfoster-scripts
locally in your Node.js project with npm i --save-dev blogfoster-scripts
.
After that, you can use it with npx
or by defining scripts in your package.json
:
{
"scripts": {
"lint": "blogfoster-scripts lint",
"format": "blogfoster-scripts format",
"build": "blogfoster-scripts build"
}
}
To have editor integrations work for ESLint or Prettier you can create .js
config files at the root level of your project that export the configs of this module:
// .eslintrc.js
module.exports = require('blogfoster-scripts/eslint');
// prettier.config.js
module.exports = require('blogfoster-scripts/prettier');
blogfoster-scripts lint <target>
Check your code for linting issues with ESLint and fix all (fixable) issues.
blogfoster-scripts lint --check <target>
By default, blogfoster-scripts lint
will try to fix any fixable linting issues. With the --check
argument it will only check your code for issues and exit with a non-zero exit code if there are any.
Optional file or glob pattern that defines the target to lint. Defaults to **/*.js
. Files in /node_modules
or /build
are ignored. If you want to specify more patterns to ignore you can create a .eslintignore
file in the root of your project.
blogfoster-scripts format <target>
Check your code for formatting issues with Prettier and fix all (fixable) issues.
blogfoster-scripts format --check <target>
By default, blogfoster-scripts format
will try to fix any fixable formatting issues. With the --check
argument it will only check your code for issues and exit with a non-zero exit code if there are any.
Optional file or glob pattern that defines the target to format. Defaults to **/*.{js,json,md}
. The package.json
, package-lock.json
, and files in /node_modules
or /build
are ignored. If you want to specify more patterns to ignore you can create a .prettierignore
file in the root of your project.
blogfoster-scripts build
Compile JavaScript starting off from the /src/index.js
file, copy static assets from the /assets
folder and package everything into the /build
folder with Webpack and Babel.
MIT