Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/blogfoster/blogfoster-scripts
Single-command, zero-config tooling for Node.js projects
https://github.com/blogfoster/blogfoster-scripts
babel build-tool eslint javascript prettier webpack zero-configuration
Last synced: 2 months ago
JSON representation
Single-command, zero-config tooling for Node.js projects
- Host: GitHub
- URL: https://github.com/blogfoster/blogfoster-scripts
- Owner: blogfoster
- License: mit
- Created: 2018-01-05T16:33:18.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2018-06-08T07:53:32.000Z (over 6 years ago)
- Last Synced: 2024-08-07T00:56:02.350Z (5 months ago)
- Topics: babel, build-tool, eslint, javascript, prettier, webpack, zero-configuration
- Language: JavaScript
- Homepage:
- Size: 170 KB
- Stars: 59
- Watchers: 8
- Forks: 5
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
- awesome-toolkits - blogfoster-scripts - Single-command, zero-config tooling for Node.js projects (Other)
README
# blogfoster-scripts
> 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](https://medium.com/blogfoster-engineering/how-we-simplified-our-tooling-setup-for-node-js-projects-80b423293b2c).
## Installation
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`:
```json
{
"scripts": {
"lint": "blogfoster-scripts lint",
"format": "blogfoster-scripts format",
"build": "blogfoster-scripts build"
}
}
```## Editor integration
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:
```js
// .eslintrc.js
module.exports = require('blogfoster-scripts/eslint');
``````js
// prettier.config.js
module.exports = require('blogfoster-scripts/prettier');
```## Commands
### lint
```sh
blogfoster-scripts lint
```Check your code for linting issues with ESLint and fix all (fixable) issues.
### `--check`
```sh
blogfoster-scripts lint --check
```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.
### format
```sh
blogfoster-scripts format
```Check your code for formatting issues with Prettier and fix all (fixable) issues.
### `--check`
```sh
blogfoster-scripts format --check
```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.
### build
```sh
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.
## Related
* [react-scripts](https://github.com/facebookincubator/create-react-app/tree/master/packages/react-scripts)
* [kcd-scripts](https://github.com/kentcdodds/kcd-scripts)
* [neutrino](https://github.com/mozilla-neutrino/neutrino-dev)
* [ESLint](https://github.com/eslint/eslint)
* [Prettier](https://github.com/prettier/prettier)
* [Webpack](https://github.com/webpack/webpack)
* [Babel](https://github.com/babel/babel)## LICENSE
MIT