Of ik begrijp dependencies
vs. devDependencies
in node nog niet 100%, of eslint is hier gewoon verkeerd (niet in staat om dit correct te analyseren):
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
Dit zijn testafhankelijkheden, dus waarom staat er dat ze moeten worden vermeld in dependencies
?
Aanvullende opmerking: we gebruiken Travis als onze CI, dus ik weet niet of het daar ook iets toe doet.
Antwoord 1, autoriteit 100%
Opgelost door dit toe te voegen aan mijn .eslintrc
:
"import/no-extraneous-dependencies": ["error", {"devDependencies": true}]
[no-extraneous-dependencies] Uitzonderingen toevoegen? #422
Gebaseerd op het antwoord van deze gebruiker:
je zou de optie devDependencies: true in een .eslintrc in je . kunnen zetten
testmap:regels: import/no-extraneous-dependencies: [error, { devDependencies:
true }] Dan krijg je rapporten van alle pakketten waarnaar wordt verwezen die zijn
niet inbegrepen afhankelijkheden of devDependencies. Dan krijg je de
goedheid van de regel, zonder ruis van de opmerkingen over uitschakelen.Ik denk dat dat misschien voor jou werkt? Dit is hoe ik de regel zou gebruiken, in
uw geval, aangezien u uw testcode hebt opgesplitst in een test
directory.
Dit bericht was ook nuttig om te bevestigen dat ik niet gek was om sommige van deze niet in mijn lijst met afhankelijkheden te willen hebben: Deelbare ESLint-configuratie
Antwoord 2, autoriteit 63%
Als u import van devDependencies
in alleen testbestandenwilt toestaan, kunt u een array of globs
gebruiken, zoals de documentatievan no-extraneous-dependencies
stelt:
Bij gebruik van een array van globs, wordt de instelling ingesteld op true (geen fouten gerapporteerd) als de naam van het bestand dat wordt gelinted overeenkomt met een enkele glob in de array, en anders op false.
Met de volgende instelling wordt de pluis alleen voor testbestanden uitgeschakeld.
"import/no-extraneous-dependencies": ["error", {"devDependencies": ["**/*.test.ts", "**/*.test.tsx"]}]
Op die manier worden importen van devDependencies
nog steeds als fouten gerapporteerd.
Antwoord 3
Ik heb het kunnen oplossen door de ontbrekende pakketten (in mijn geval Typescript en Storybook) toe te voegen aan mijn plugins
directory in .eslintrc
.
Ik geef de details in dit bericht: ESLint-fout: ‘@storybook/react’ moet worden vermeld in de afhankelijkheden van het project, niet in devDependencies