Cómo alguien podría compartir la configuración de esLint/prettier en los espacios de trabajo de Yarn (sin NPM, Lerna, etc.).
Intento mantener las cosas en un nivel bastante alto, pero he intentado crear un paquete separado para la configuración de esLint y consumirlo en paquetes de proyectos (instalándolo y ampliándolo), sin embargo, me encontré con dos problemas:
eslint command not found : ¿tengo que instalar el eslint en cada paquete de proyecto que consume las dependencias del paquete eslint-config?eslint-config en book/package.json , se debe instalar eslint . No estoy seguro de por qué no se encuentra el comando eslint.eslint dentro de book/package.json project-package y no parece tener la comprensión de los entornos que están configurados en eslint-config . por ejemplo: "Jest": { "testEnvrionment": "Node" } se ignora en cada proyecto. fictional-project ├── config-packages │ ├── eslint-config │ │ └── package.json │ └── settings │ └── package.json ├── package.json ├── project-packages │ └── book │ ├── book-function-as-a-service.js │ └── package.json └── src └── index.jsDe hecho, necesita eslint instalado en el paquete que usa su configuración compartida. Puede funcionar sin él en algunos casos, pero debe ser explícito con yarn para asegurarse de que el binario siempre estará presente/enlazado. No estoy seguro de por qué eslint no detecta la configuración de su entorno de broma. ¿Estás definiendo tu configuración de eslint en tu package.json ? Tengo una configuración similar en mi monorepo (Yarn v3.x). Puede ser que su paquete de configuración deba exportar explícitamente la configuración en un módulo. Espero que esto te ayude, suponiendo que aún no lo hayas descubierto.
. ├── libs │ └── eslint-config-react │ ├── index.js │ └── package.json │ └── packages └── some-package ├── .eslintrc.js └── package.json ./libs/eslint-config-react
El index.js es una configuración típica de eslint y el paquete.json se ve así:
{ "name": "@my-workspace/eslint-config-react", "main": "index.js", "dependencies": { "eslint": "7.32.0", "eslint-config-next": "11.1.3", "eslint-config-prettier": "8.3.0", "next": "11.1.3", "typescript": "4.4.4" } } ./packages/some-package
package.json
{ "name": "some-package", "scripts": { "lint": "eslint .", }, "devDependencies": { "@my-workspace/eslint-config-react": "workspace:*", "eslint": "7.32.0", } } .eslintrc.js
module.exports = { extends: ['@my-workspace/eslint-config-react'], };