Sådan tvinges brug af garn eller NPM

I dette korte indlæg vil jeg vise dig, hvordan du forhindrer brugen af npm eller garn afhængigt af dine behov. Lad os komme igang!

Rediger .npmrc

Du har muligvis ikke denne fil i din codebase. Hvis dette er tilfældet, skal du oprette denne fil i rodmappen på din applikation.

Det giver os mulighed for at specificere pakkehåndteringskonfigurationer, og det bruges af både npm og garn .

Din .npmrcfil skal have engine-strictegenskaben markeret som true.

//.npmrc file engine-strict = true

Denne mulighed fortæller pakkehåndtereren at bruge den version af de motorer, vi har angivet i package.jsonfilen.

Rediger package.json

Inde i din package.jsonfil skal du tilføje enginessektionen, hvis du ikke har den i øjeblikket.

 //package.json { ... "engines": { "npm": "please-use-yarn", "yarn": ">= 1.19.1" }, ... }

I ovenstående kode package.jsonbruger filen en version på yarn1.19.1 eller nyere.

Men for npmvi specificerer en version, der ikke findes.

På denne måde sørger vi for, at når nogen prøver at bruge i npmstedet for yarn, vil de modtage en fejl, der output ' please-use-yarn'.

Kører npm-installation

Når du har foretaget ovenstående ændringer, skal du prøve at køre npm install.

Du modtager en fejl, der forhindrer dig i at bruge npm.

 npm ERR! code ENOTSUP npm ERR! notsup Unsupported engine for [email protected]: wanted: {"npm":"please-use-yarn","yarn":">= 1.19.1"} (current: {"node":"12.16.3","npm":"6.14.4"}) npm ERR! notsup Not compatible with your version of node/npm: [email protected] npm ERR! notsup Not compatible with your version of node/npm: [email protected] npm ERR! notsup Required: {"npm":"please-use-yarn","yarn":">= 1.19.1"} npm ERR! notsup Actual: {"npm":"6.14.4","node":"12.16.3"} npm ERR! A complete log of this run can be found in: npm ERR! C:\Users\YourUser\AppData\Roaming\npm-cache\_logs\2020-05-21T10_21_04_676Z-debug.log 

Dette kan naturligvis gøres omvendt, hvis du vil forhindre brugen af yarn.

Konklusion

Det er ret ligetil og let at sikre, at der kun skal bruges en pakkehåndtering inde i dit projekt.

Dette reducerer risikoen for fejl forårsaget af udviklere, der bruger forskellige pakkehåndtering, og det er en god praksis at standardisere projektets kodningsregler og styring.

Du kan nå ud og bede mig om noget på Twitter, Facebook og min hjemmeside.