Install the following packages:
pnpm i --save-dev @robinbobin/ts-eslint-prettier eslint prettier typescript
For React (Native) projects:
pnpm i --save-dev @types/react eslint-plugin-react-hooks react
Assuming you have the src
folder at the top of your project:
{
"compilerOptions": {
"declaration": true,
"outDir": "js"
},
"extends": "@robinbobin/ts-eslint-prettier/tsconfig.base",
"include": ["./*.mjs", "./src/**/*.ts"]
}
For React (Native) projects:
{
"compilerOptions": {
"declaration": true,
"outDir": "js"
},
"extends": "@robinbobin/ts-eslint-prettier/tsconfig.base",
"include": ["./*.mjs", "./src/**/*.ts", "./src/**/*.tsx"]
}
import eslintConfig from '@robinbobin/ts-eslint-prettier/eslint.config.mjs'
export default [
...eslintConfig,
]
If you're getting
The inferred type of 'array' cannot be named without a reference to '.pnpm/@typescript-eslint+utils...'
:
import eslintConfig from '@robinbobin/ts-eslint-prettier/eslint.config.mjs'
/** @type unknown[] */
const array = [...eslintConfig]
export default array
For React (Native) projects:
import config from '@robinbobin/ts-eslint-prettier/eslint.config.mjs'
import configPluginReactHooks from '@robinbobin/ts-eslint-prettier/eslint.config.plugin.react.hooks.mjs'
export default [
...config,
...configPluginReactHooks,
{
rules: {
'react-hooks/exhaustive-deps': 'error'
}
}
]
export { default } from '@robinbobin/ts-eslint-prettier/prettier.config.mjs'
/js
/pnpm-lock.yaml
/js
node_modules
Add the the following to package.json
:
"files": [
"/js",
"/src"
]
#!/bin/bash
rm -rf js &&
pnpm tsc &&
pnpm eslint &&
pnpm prettier . --check
chmod u+x prepack.sh
package.json
:
"scripts": {
"prepack": "./prepack.sh"
}