# mrm-core

> Utilities to make tasks for Mrm

Latest version **7.1.22** (published 2023-09-14) · MIT license · 0 weekly downloads

## Install

```sh
npm install mrm-core
pnpm add mrm-core
yarn add mrm-core
bun add mrm-core
```

## Health

**Score 20/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 7.1.22 |
| Published | 2023-09-14 |
| First published | 2017-01-20 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Node | >=10.13 |
| Dependencies | 20 |
| Unpacked size | 117.7 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 1647 |
| Author | Artem Sapegin |
| Maintainers | sapegin |
| Keywords | mrm, boilerplate, codemod, template, generate, generator, scaffold, npm, yaml, json, ini, markdown |

## Links

- npm: https://www.npmjs.com/package/mrm-core
- Repository: https://github.com/sapegin/mrm
- Issues: https://github.com/sapegin/mrm/issues
- npm.io page: https://npm.io/package/mrm-core

## Dependencies (20)

- [rc](https://npm.io/package/rc.md) ^1.2.8
- [yaml](https://npm.io/package/yaml.md) ^2.0.0-1
- [kleur](https://npm.io/package/kleur.md) ^3.0.3
- [lodash](https://npm.io/package/lodash.md) ^4.17.15
- [semver](https://npm.io/package/semver.md) ^6.3.0
- [find-up](https://npm.io/package/find-up.md) ^4.1.0
- [listify](https://npm.io/package/listify.md) ^1.0.0
- [fs-extra](https://npm.io/package/fs-extra.md) ^8.1.0
- [minimist](https://npm.io/package/minimist.md) ^1.2.0
- [prop-ini](https://npm.io/package/prop-ini.md) ^0.0.2
- [smpltmpl](https://npm.io/package/smpltmpl.md) ^1.0.2
- [strip-bom](https://npm.io/package/strip-bom.md) ^4.0.0
- [split-lines](https://npm.io/package/split-lines.md) ^2.0.0
- [comment-json](https://npm.io/package/comment-json.md) ^2.2.0
- [editorconfig](https://npm.io/package/editorconfig.md) ^0.15.3
- [detect-indent](https://npm.io/package/detect-indent.md) ^6.0.0
- [readme-badger](https://npm.io/package/readme-badger.md) ^0.3.0
- [webpack-merge](https://npm.io/package/webpack-merge.md) ^4.2.2
- [babel-code-frame](https://npm.io/package/babel-code-frame.md) ^6.26.0
- [validate-npm-package-name](https://npm.io/package/validate-npm-package-name.md) ^3.0.0

## Alternatives

- [@mapbox/jsonlint-lines-primitives](https://npm.io/package/@mapbox/jsonlint-lines-primitives.md) — 5.3M weekly downloads
- [reftools](https://npm.io/package/reftools.md) — 3.5M weekly downloads
- [@hey-api/openapi-ts](https://npm.io/package/@hey-api/openapi-ts.md) — 3.5M weekly downloads
- [@mapbox/geojson-rewind](https://npm.io/package/@mapbox/geojson-rewind.md) — 2.4M weekly downloads
- [turbo-stream](https://npm.io/package/turbo-stream.md) — 1.7M weekly downloads

## Recent versions

- 7.1.22 (latest) — 2023-09-14
- 7.1.21 — 2023-09-13
- 7.1.20 — 2023-09-13
- 7.1.19 — 2023-09-13
- 7.1.18 — 2023-09-13
- 7.1.17 — 2023-07-04
- 7.1.16 — 2023-07-04
- 7.1.15 — 2023-07-04
- 7.1.14 — 2023-03-10
- 7.1.13 — 2022-10-19
- 7.1.12 — 2022-10-19
- 7.1.11 — 2022-10-19
- 7.1.10 — 2022-10-18
- 7.1.9 — 2022-10-18
- 7.1.8 — 2022-10-17
- … 74 more at https://npm.io/package/mrm-core/versions

## README

# Mrm

[![npm](https://img.shields.io/npm/v/mrm.svg)](https://www.npmjs.com/package/mrm) [![Codecov](https://codecov.io/gh/sapegin/mrm/branch/master/graph/badge.svg)](https://codecov.io/gh/sapegin/mrm) [![Node.js CI status](https://github.com/sapegin/mrm/workflows/Node.js%20CI/badge.svg)](https://github.com/sapegin/mrm/actions)

Command line tool to help you keep configuration (`package.json`, `.gitignore`, `.eslintrc`, etc.) of your open source projects in sync.

## Features

- Doesn’t overwrite your data unless you want to
- Minimal changes: keeps the original file formatting or read the style from EditorConfig
- Minimal configuration: tries to infer configuration from the project itself or from the environment
- [Customizable tasks](#tasks) for popular tools like ESLint, Prettier, lint-staged, etc. included
- [Custom tasks](https://mrm.js.org/docs/making-tasks) and [tools](https://mrm.js.org/docs/mrm-core) to work with JSON, YAML, INI, Markdown and new line separated text files
- Sharing tasks via npm and grouping them into [presets](https://mrm.js.org/docs/making-presets)

![](https://d3vv6lp55qjaqc.cloudfront.net/items/1g0e2M3m2Y3j0m3B3n1t/Image%202017-06-20%20at%209.00.39%20PM.png)

[![Washing your code. A book on clean code for frontend developers](https://sapegin.me/images/washing-code-github.jpg)](https://sapegin.me/book/)

## Motivation

Most of the available tools are template based. Template approach works moderately well for new project generation but doesn’t work well for updating. Mrm’s approach is closer to [codemods](https://github.com/facebook/codemod) than templates.

Read more in my article, [Automating open source project configuration with Mrm](https://blog.sapegin.me/all/mrm), or watch [my talk on Mrm](https://www.youtube.com/watch?v=5tHfAf4bRcM).

## Documentation

- [Getting started](https://mrm.js.org/docs/getting-started)
- [Making your own tasks](https://mrm.js.org/docs/making-tasks)
- [Sharing tasks via npm](https://mrm.js.org/docs/sharing-tasks)
- [Making your own presets](https://mrm.js.org/docs/making-presets)
- [FAQ](https://mrm.js.org/docs/faq)
- [Utilities to write codemods](https://mrm.js.org/docs/mrm-core)

## Tasks

These tasks are [included by default](https://mrm.js.org/docs/mrm-preset-default):

<!-- textlint-disable terminology -->

- [ci](https://mrm.js.org/docs/mrm-task-ci)
- [codecov](https://mrm.js.org/docs/mrm-task-codecov)
- [contributing](https://mrm.js.org/docs/mrm-task-contributing)
- [dependabot](https://mrm.js.org/docs/mrm-task-dependabot)
- [editorconfig](https://mrm.js.org/docs/mrm-task-editorconfig)
- [eslint](https://mrm.js.org/docs/mrm-task-eslint)
- [gitignore](https://mrm.js.org/docs/mrm-task-gitignore)
- [jest](https://mrm.js.org/docs/mrm-task-jest)
- [license](https://mrm.js.org/docs/mrm-task-license)
- [lint-staged](https://mrm.js.org/docs/mrm-task-lint-staged)
- [package](https://mrm.js.org/docs/mrm-task-package)
- [prettier](https://mrm.js.org/docs/mrm-task-prettier)
- [readme](https://mrm.js.org/docs/mrm-task-readme)
- [semantic-release](https://mrm.js.org/docs/mrm-task-semantic-release)
- [styleguidist](https://mrm.js.org/docs/mrm-task-styleguidist)
- [stylelint](https://mrm.js.org/docs/mrm-task-stylelint)
- [travis](https://mrm.js.org/docs/mrm-task-travis)
- [typescript](https://mrm.js.org/docs/mrm-task-typescript)

<!-- textlint-enable -->

## Changelog

The changelog can be found on the [Releases page](https://github.com/sapegin/mrm/releases).

## Sponsoring

This software has been developed with lots of coffee, buy me one more cup to keep it going.

<a href="https://www.buymeacoffee.com/sapegin" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/lato-orange.png" alt="Buy Me A Coffee" height="51" width="217"></a>

## Contributing

Bug fixes are welcome, but not new features. Please take a moment to review the [contributing guidelines](Contributing.md).

## Authors and license

[Artem Sapegin](https://sapegin.me) and [contributors](https://github.com/sapegin/mrm/graphs/contributors).

MIT License, see the included [License.md](License.md) file.

---
_Source: https://npm.io/package/mrm-core · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
