npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@chore-dev/composer

v1.0.12

Published

Single command project setup! This package automates essential tools for code style, version control, releases, and Docker.

Downloads

6

Readme

composer

Single command project setup! This package automates essential tools for code style, version control, releases, and Docker.

NOTE: This package assists in setting up the following tools. You may click the links below to learn more about each tool.

| IDE | Development | Linting & Prettify | Version control | Deployment | | ----------------------------------------- | -------------------------------------------------- | ----------------------------------------------------------------------------- | ------------------------------------------ | ------------------------------------------------------ | | EditorConfig | TypeScript | ESLint@8.0.0 | commitlint | Docker | | | | lint-staged | Git | Release It | | | | Prettier | husky | |

NOTE: Currently fixed ESLint version at latest v8.0.0 due to the following reasons:

  • ESLint v9 contains breaking API changes
  • The eslint-plugin-react plugin is not compatible with ESLint v9

Table of Contents

Prerequisite

In order to use this package, you project must meet the following requirements:

  • Contains a package.json file
# NPM
$ npm init

# PNPM
$ pnpm init

# Yarn
$ yarn init
$ git init

Installation

Install the package as a dev dependency:

# NPM
$ npm install -D @chore-dev/composer

# PNPM
$ pnpm add -D @chore-dev/composer

# Yarn
$ yarn add -D @chore-dev/composer

Usage

  1. Add the following script to your package.json file

You may skip this step if you are using PNPM or Yarn

{
  ...
  "scripts": {
    // ...existing scripts
    "composer": "composer"
  },
  ...
}
  1. Run the following command to start the Composer:
# NPM
$ npm run composer [<options>]

# PNPM
$ pnpm composer [<options>]
or # If you have added the script to your `package.json` file
$ pnpm run composer [<options>]

# Yarn
$ yarn composer [<options>]
or # If you have added the script to your `package.json` file
$ yarn run composer [<options>]

Options

| Option | Alias | Description | Example | | ----------------------- | ----------------- | ------------------------------------------------- | ------------------------ | | --dry-run | -D | Run the command without making any changes | | | --no-backup | | Skip creating backup files while running composer | | | --preset path::string | -P path::string | Use a preset file and skip all questions | --preset ./preset.json |

Preset file

The preset file is a JSON file that contains the configuration for the Composer. The following is the structure of the preset file:

interface Preset {
  // Project environment
  env: Record<'isBrowser' | 'isNode', boolean>;
  framework: 'react' | 'vue' | 'none';
  packageManager: 'npm' | 'pnpm' | 'yarn';
  styleSheet: 'css' | 'scss' | 'none';
  withSyntaxExtension: boolean;
  // Tools
  commitLint: Record<'createConfig' | 'install' | 'integrate', boolean> | false;
  docker: Record<'addIgnores', boolean> | false;
  editorConfig: Record<'createConfig', boolean>;
  eslint: Record<'addIgnores' | 'createConfig' | 'insertScripts' | 'install', boolean> | false;
  git: Record<'addIgnores', boolean> | false;
  husky: Record<'insertScripts' | 'install', boolean> | false;
  lintStaged: Record<'createConfig' | 'install' | 'integrate', boolean> | false;
  prettier: Record<'addIgnores' | 'createConfig' | 'insertScripts' | 'install', boolean> | false;
  releaseIt: Record<'createConfig' | 'insertScripts' | 'install', boolean> | false;
  typescript: Record<'createConfig' | 'install', boolean> | false;
}

You may also copy the preset file from the Composer by running the following command:

# NPM
$ npm run composer --dry-run

# PNPM
$ pnpm composer --dry-run
or # If you have added the script to your `package.json` file
$ pnpm run composer --dry-run

# Yarn
$ yarn composer --dry-run
or # If you have added the script to your `package.json` file
$ yarn run composer --dry-run

Outputs

Composer may generate the following files according to the tools you have selected:

Click the items below to learn more about customizing them

commitlint

Docker

EditorConfig

ESLint

Git

Husky

lint-staged

Prettier

release-it

TypeScript

^ Back to top