eslint moet worden vermeld in de afhankelijkheden van het project, niet in devDependencies

Of ik begrijp dependenciesvs. devDependenciesin 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 devDependenciesin alleen testbestandenwilt toestaan, kunt u een array of globsgebruiken, zoals de documentatievan no-extraneous-dependenciesstelt:

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 devDependenciesnog 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 pluginsdirectory 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

Other episodes