typescript - Hur man felsöker 'npm ERR! 403 I de flesta fall begär du eller en av dina beroenden en paketversion som är förbjuden enligt din säkerhetspolicy.'


Jag försöker för närvarande att sätta upp en Jenkins och ett privat npm-register (Sonatype Nexus). Jag får följande fel när jag försöker publicera till registret inom en Jenkins byggpipeline.

+ npm publish --registry https://<my-private-registry>/repository/npm-private/
npm notice 
npm notice package: [email 
npm notice === Tarball Contents === 
npm notice 2.4kB  Jenkinsfile                       
...
('notice' level info about the files)
...
npm notice === Tarball Details === 
npm notice name:          ts-acoustics                            
npm notice version:       0.0.0                                   
npm notice package size:  13.8 kB                                 
npm notice unpacked size: 47.5 kB                                 
npm notice shasum:        554b6d2b41321d78e00f6a309bb61c9181a2e3d6
npm notice integrity:     sha512-QtExdu6IqZ+lH[...]r+HXolo4YCFPg==
npm notice total files:   17                                      
npm notice 
npm ERR! code E403
npm ERR! 403 403 Forbidden - PUT https://<my-private-registry>/repository/npm-private/ts-acoustics
npm ERR! 403 In most cases, you or one of your dependencies are requesting
npm ERR! 403 a package version that is forbidden by your security policy.

Jag hittar ingen ytterligare information om varför det är förbjudet i Nexus-loggarna och denna öppna GitHub-bugg säger mig att ovanstående felmeddelande leder i fel riktning i de flesta fall?!

Har du någon idé om hur man ska gå till väga för att få publiceringen att fungera?!


Uppdatering 1: Jag såg just att jag har samma problem när jag försöker publicera det manuellt!

Jenkins är ute ur ekvationen av enkelhetsskäl.

Uppdatering 2: Jag kan göra npm adduser --registry... och npm säger till mig

Logged in as <my-user> on https://<my-private-registry>/repository/npm-private/.

När jag kör npm whoami --registry... visas rätt användarnamn.

När jag kör npm publish --registry... i projektet, visas 403-felet.

Svar #1

Om du är som jag och följer Node Cookbook-exemplet, eller något annat exempel där du precis skapade ditt konto, är ditt fel förmodligen som mitt.

Jag hade inte verifierat min e-postadress och fick samma fel (det var ett nytt konto). När jag verifierade fungerade det (även med VPN).

Kontrollera din e-post och verifiera ditt konto.

Svar #2

Detta inträffar främst i två scenarier

  1. Felet kan uppstå på grund av ett *konflikterande paket som är offentligt. Bara byt namn på paketet i package.json och försök igen!

  2. Du kan ha registrerat dig nyligen och glömt att verifiera e-postadressen. Så du kan logga in på denna länk: https://www.npmjs.com/login

    I rubriken ser du ett alternativ för att skicka en verifieringslänk till din e-post. När du har slutfört verifieringen, försök att publicera det igen.

Anmärkning: 2) fungerade för mig.

Svar #3

Att uppdatera PACKAGE-VERSION vid publicering löste problemet för mig.

Svar #4

Jag fick samma fel när jag publicerade till JFrog Artifactory. Det berodde på att det redan fanns ett paket med samma namn i arkivet. För att åtgärda detta, antingen ta bort det gamla paketet eller ändra versionen/namnet på det nya.

Relaterade artiklar