O no entiendo dependencies
frente a devDependencies
en el nodo al 100% todavía o eslint está mal aquí (no es capaz de analizar esto correctamente):
3:1 error 'chai' should be listed in the project's dependencies, not devDependencies import/no-extraneous-dependencies 4:1 error 'chai-enzyme' should be listed in the project's dependencies, not devDependencies import/no-extraneous-dependencies 5:1 error 'enzyme' should be listed in the project's dependencies, not devDependencies import/no-extraneous-dependencies 7:1 error 'sinon' should be listed in the project's dependencies, not devDependencies import/no-extraneous-dependencies 9:1 error 'redux-mock-store' should be listed in the project's dependencies, not devDependencies import/no-extraneous-dependencies
Estas son dependencias de prueba, entonces, ¿por qué dice que deben enumerarse en dependencies
?
Nota adicional: estamos usando a Travis como nuestro CI, así que tampoco sé si eso hace alguna diferencia.
Lo resolví agregando esto a mi .eslintrc
:
"import/no-extraneous-dependencies": ["error", {"devDependencies": true}]
[sin dependencias extrañas] ¿Agregar excepciones? #422
Basado en la respuesta de este usuario :
puede configurar la opción devDependencies: true en un .eslintrc en su carpeta de prueba:
rules: import/no-extraneous-dependencies: [error, { devDependencies: true }] Luego obtendrá informes de los paquetes a los que se hace referencia que no están incluidos en las dependencias o devDependencies. Entonces obtienes la bondad de la regla, sin ruido de los comentarios de desactivación .
Creo que eso podría funcionar para usted? Así es como usaría la regla, en su caso, ya que tiene su código de prueba separado en un directorio de prueba.
Además, esta publicación fue útil para confirmar que no estaba loco por no querer algunos de estos en mi lista de dependencias : Sharable ESLint Config
Si desea permitir importaciones de devDependencies
en archivos de prueba, solo puede usar una array of globs
, como indica la documentación de no-extraneous-dependencies
:
Al usar una matriz de globs, la configuración se establecerá en verdadero (no se informan errores) si el nombre del archivo que se está filtrando coincide con un único glob en la matriz, y en falso en caso contrario.
La siguiente configuración deshabilitará la pelusa solo para archivos de prueba.
"import/no-extraneous-dependencies": ["error", {"devDependencies": ["**/*.test.ts", "**/*.test.tsx"]}]
De esa manera, las importaciones de devDependencies
todavía se informan como errores.
Pude resolverlo agregando los paquetes faltantes (en mi caso, Typescript y Storybook) a mi directorio de plugins
en .eslintrc
.
Doy los detalles en esta publicación: ESLint error: '@storybook/react' debe aparecer en las dependencias del proyecto, no en las dependencias de desarrollo