0.0.12 • Published 3 years ago

@curve-technology/webapp-scripts v0.0.12

Weekly downloads
-
License
UNLICENSED
Repository
github
Last release
3 years ago

Installation

Install @curve-technology/webapp-scripts and its peerDependencies

yarn add --dev @curve-technology/webapp-scripts jest eslint

Babel

To use this config, create an .babelrc file in the root of your package and add:

{
  "extends": "@curve-technology/webapp-scripts/babel/nextjs"
}

ESLint

There are four eslint configs available, pick the one most appropriate for your project:

  • JS: for general purpose usage ./node_modules/@curve-technology/webapp-scripts/eslint/eslint-js
  • React: extends the base, for use with React ./node_modules/@curve-technology/webapp-scripts/eslint/eslint-js-react
  • Typescript: extends the base, for use with Typescript ./node_modules/@curve-technology/webapp-scripts/eslint/eslint-ts
  • Typescript + React: extends the base, for use with Typescript and React ./node_modules/@curve-technology/webapp-scripts/eslint/eslint-ts-react

To use this config, create an .eslintrc file in the root of your package and reference one of the mentioned config options.

Base Typescript and React .eslintrc

Using a configuration file

The extends property value can be an absolute or relative path to a base configuration file. ESLint resolves a relative path to a base configuration file relative to the configuration file that uses it.

Example of a configuration file in JSON format:

{
  "extends": [
    "./node_modules/@curve-technology/webapp-scripts/eslint/eslint-ts-react"
  ],
  "rules": {
    "eqeqeq": "warn"
  }
}

Jest

This config assumes you're using jest.

To use this config, create an jest.config.js file in the root of your package and add:

Using the default config

module.exports = {
  ...require('@curve-technology/webapp-scripts/jest'),
}

Overriding the default config

If you need to add or override this config, use something like this:

const jestConfig = require('@curve-technology/webapp-scripts/jest')

// add an item to `setupFilesAfterEnv`
jestConfig.setupFilesAfterEnv.push('<rootDir>src/testUtils/mocks.js')

module.exports = Object.assign(jestConfig, {
  // your overrides here
  testPathIgnorePatterns: ['/dist/', '/node_modules/'],
  setupFiles: ['dotenv/config'],
  snapshotSerializers: ['jest-emotion'],
})

Prettier

To use this config, create an .prettierrc.js file in the root of your package and add:

module.exports = {
  ...require('@curve-technology/webapp-scripts/prettier'),
}

Husky

To use this config, create an .huskyrc.js file in the root of your package and add:

module.exports = {
  ...require('@curve-technology/webapp-scripts/husky'),
}

Commitlint

To use this config, create an .commitlintrc.js file in the root of your package and add:

module.exports = {
  ...require('@curve-technology/webapp-scripts/commitlint'),
}

TypeScript

To use this config, create an tsconfig.json file in the root of your repo and add:

{
  "extends": "@curve-technology/webapp-scripts/tsconfig/tsconfig.base",
  "exclude": ["node_modules", "./.storybook/**/*"],
  "include": ["next-env.d.ts", "src/**/*.ts", "src/**/*.tsx"]
}

Lighthouse

To use this config, create an lighthouserc.js file in the root of your repo and add:

module.exports = {
  ci: {
    ...require('@curve-technology/webapp-scripts/lighthouse'),
  },
}

Made by Curve's web scientists 👨‍🔬