# @jakzo/project

> Javascript project tooling in a box.

Latest version **0.0.3** (published 2020-06-08) · MIT license · 0 weekly downloads

## Install

```sh
npm install @jakzo/project
pnpm add @jakzo/project
yarn add @jakzo/project
bun add @jakzo/project
```

Provides the command `project`.

## Health

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

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.3 |
| Published | 2020-06-08 |
| First published | 2020-06-08 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 20 |
| Unpacked size | 89.4 KB |
| Known vulnerabilities | 0 |
| Install scripts | yes |
| Author | Jack Field |
| Maintainers | jakzo |
| Keywords | project, tooling, boilerplate |

## Links

- npm: https://www.npmjs.com/package/@jakzo/project
- Repository: https://bitbucket.org/atlassian/incredible-monorepo
- Homepage: https://bitbucket.org/atlassian/incredible-monorepo/src/master/src/packages/standalone/ts-dev
- npm.io page: https://npm.io/package/@jakzo/project

## Dependencies (20)

- [jest](https://npm.io/package/jest.md) ^26.0.1
- [eslint](https://npm.io/package/eslint.md) ^7.2.0
- [rimraf](https://npm.io/package/rimraf.md) ^3.0.2
- [ts-jest](https://npm.io/package/ts-jest.md) ^26.1.0
- [fs-extra](https://npm.io/package/fs-extra.md) ^9.0.1
- [prettier](https://npm.io/package/prettier.md) ^2.0.5
- [typescript](https://npm.io/package/typescript.md) ^3.9.5
- [@jest/types](https://npm.io/package/@jest/types.md) ^26.0.1
- [@types/jest](https://npm.io/package/@types/jest.md) ^25.2.3
- [@types/node](https://npm.io/package/@types/node.md) ^14.0.11
- [ttypescript](https://npm.io/package/ttypescript.md) ^1.5.10
- [@changesets/cli](https://npm.io/package/@changesets/cli.md) ^2.8.0
- [eslint-plugin-jest](https://npm.io/package/eslint-plugin-jest.md) ^23.13.2
- [eslint-plugin-import](https://npm.io/package/eslint-plugin-import.md) ^2.20.2
- [eslint-config-prettier](https://npm.io/package/eslint-config-prettier.md) ^6.11.0
- [eslint-plugin-prettier](https://npm.io/package/eslint-plugin-prettier.md) ^3.1.3
- [eslint-plugin-only-warn](https://npm.io/package/eslint-plugin-only-warn.md) ^1.0.2
- [@typescript-eslint/parser](https://npm.io/package/@typescript-eslint/parser.md) ^3.1.0
- [@typescript-eslint/eslint-plugin](https://npm.io/package/@typescript-eslint/eslint-plugin.md) ^3.1.0
- [@typescript-eslint/experimental-utils](https://npm.io/package/@typescript-eslint/experimental-utils.md) ^3.1.0

## Recent versions

- 0.0.3 (latest) — 2020-06-08
- 0.0.2 — 2020-06-08
- 0.0.1 — 2020-06-08

## README

# @jakzo/project

_Javascript project tooling in a box._

## Usage

Run `yarn init` to create a blank project (no `.gitignore` file, no tooling installed, just a `package.json`) then run:

```sh
yarn add -D @jakzo/project
```

**That's it!** All the tooling should now be set up. Note that you may need to restart your IDE for the integrations to pick up the changes.

### Why use this instead of Yeoman or even just copying a boilerplate folder?

For **free maintainence**. This package is more than just a template for code; all the tooling and configuration is inside a dependency which means that by running `yarn upgrade @jakzo/project --latest` your tooling will be updated to the current state-of-the-art JS project setup. Any bugs in tooling can be fixed and tool dependency versions upgraded. These upgrades can even be automated with a bot like [Renovate](https://github.com/renovatebot/renovate). With templates they help you get started quickly but leave all the maintenance to you. If you have many separate repositories, the maintenance time savings add up quickly.

### Why would I not want to use this?

If you require a unique tooling setup which the project's setup is not compatible with or you don't like my choice of tooling. Right now it only caters for a narrow set of projects but in the future I'd like to see it be made modular where you can create extensions which add new technologies and associated linting rules. You can always start off with it then eject when you need.

### How do I eject?

That's a manual process for now. The basic idea is to remove the dependency and add in all the tooling yourself. One way you could do this is by installing all the packages depended on by `@jakzo/project`, replacing all the config files with the config that they retrieve from `node_modules/@jakzo/project`, then run `yarn remove @jakzo/project`.

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