Best Practices

When starting a new project

  • Use Lerna

  • Use typescript

  • Use eslint

  • Use prettier

  • Use jest

  • Use husky

    • Used to lint files

See https://github.com/aizatto/javascript-repository-template/blob/master/repositories.json

Lerna

https://github.com/lerna/lerna

npx lerna init
npx lerna bootstrap --npm-client=yarn --use-workspaces

Update lerna.json

lerna.json
{
  "npmClient": "yarn",
  "useWorkspaces": "true"
}

Install

Update package.json

package.json when creating a new package:

Package Management

Each package manages it's own typescript and eslint.

For example, at the root directory.

Use JSON5 over JSON

The JSON5 Data Interchange Format (JSON5) is a superset of JSON that aims to alleviate some of the limitations of JSON by expanding its syntax to include some productions from ECMAScript 5.1.

JSON5 Short Example:

Package Recommendations

commander: command-line arguments

dotenv

As early as possible:

JavaScript:

TypeScript:

Or

fs-extra

fs-extra adds file system methods that aren't included in the native fs module and adds promise support to the fs methods. It also uses graceful-fs to prevent EMFILEerrors. It should be a drop in replacement for fs.

Last updated

Was this helpful?