Node tips

Automatically initialize node environment with .nvm if something is found

# File ~/.zshrc
test -f ./.nvmrc && nvm use

Use Node 14.x (aka Gallium) in a project.

echo lts/fermium > .nvmrc

Use Node 16.x (aka Gallium) in a project.

echo lts/gallium > .nvmrc

See Node codenames

Pinning versions

You can pin Node and NPM to a specific version.

Add to package.json

"engines": {
    "node": "^16",
    "npm": "^8"
},

Create an .npmrc file.

echo "engine-strict=true" > .npmrc

See

Linters

Install eslint and prettier

yarn add -D eslint prettier eslint-config-google eslint-config-prettier

Add configuration file .eslintrc.js

module.exports = {
extends: ["google", "eslint:recommended", "prettier"],
    parserOptions: {
        ecmaVersion: 2017,
    },
    env: {
        es6: true,
        node: true,
    },
    rules: {
        'require-jsdoc': 'off',
    },
};

Add a configuration file for prettier: .prettierrc.json:

{
    "singleQuote": true
}

Install lint-staged and husky:

npx mrm@2 lint-staged

It installs dependencies and creates necessary config files.