Το npm έχει ξεχωριστές ρυθμίσεις proxy και https-proxy. Η διάκριση είναι ο προορισμός που ζητείται. Για συνηθισμένο HTTP proxy που δημιουργεί σήραγγες HTTPS, και οι δύο τιμές μπορούν να δείχνουν στο ίδιο τελικό σημείο http://.

Ένα .npmrc σε επίπεδο έργου μπορεί να περιέχει:

proxy=http://203.0.113.10:8080
https-proxy=http://203.0.113.10:8080
noproxy=localhost,127.0.0.1,registry.example.internal

Αντικαταστήστε το σημείο τεκμηρίωσης με το proxy σας· για επιτρεπόμενες δοκιμές δημόσιου μητρώου, η λίστα HTTP proxy προσφέρει υποψηφίους HTTP. Η τελευταία γραμμή αφήνει σκόπιμα το ονομασμένο εσωτερικό μητρώο σε άμεση σύνδεση. Δεν είναι άλλη διεύθυνση proxy.

Ζητήστε από το npm να κάνει αίτημα

Η εγκατάσταση από κρυφή μνήμη είναι κακή δοκιμή δρομολόγησης: το npm ίσως έχει ήδη όσα χρειάζεται. Ένα ping μητρώου είναι μικρότερος έλεγχος:

npm ping --registry=https://registry.npmjs.org/

Η επιτυχής ολοκλήρωση δείχνει ότι αυτή η κλήση npm έφτασε στη διαδρομή εκείνου του μητρώου. Δεν αποδεικνύει ότι κάθε κεντρικός υπολογιστής tarball, εξάρτηση Git ή ξεχωριστή διεργασία διαχειριστή πακέτων χρησιμοποιεί την ίδια διαδρομή.

Για εντοπισμό αντικρουόμενης ρύθμισης, εξετάστε τις ενεργές τιμές αντί να επεξεργάζεστε αμέσως περισσότερα αρχεία:

npm config get proxy
npm config get https-proxy
npm config get noproxy

Οι εντολές μπορούν να εμφανίσουν διαπιστευτήρια αν είναι ενσωματωμένα σε URL. Ελέγξτε την έξοδο τοπικά αντί να την επικολλάτε αμετάβλητη σε αναφορά προβλήματος.

Το .npmrc του έργου δεν χρησιμοποιείται για καθολικές εγκαταστάσεις. Αν αποτυγχάνει μόνο το npm install -g, ελέγξτε την ενεργή ρύθμιση εκείνης της κλήσης αντί να υποθέτετε ότι διάβασε το αρχείο έργου.

Ελέγξτε εξαιρέσεις πριν αλλάξετε IP

Το npm λειτουργεί και με μεταβλητές περιβάλλοντος proxy, και το noproxy μπορεί να προέρχεται από το NO_PROXY. Προορισμός που εξαιρείται από την ενεργή ρύθμιση μπορεί να συνδεθεί άμεσα παρότι υπάρχει τιμή proxy. Αντίστροφα, η διαγραφή γραμμής από ένα .npmrc δεν αφαιρεί κληρονομημένη μεταβλητή περιβάλλοντος.

Κρατήστε χωριστά τα σφάλματα πιστοποιητικών

Ένα εξουσιοδοτημένο proxy επιθεώρησης μπορεί να απαιτεί CA οργανισμού που η εγκατάσταση Node/npm δεν εμπιστεύεται ακόμη. Το npm υποστηρίζει αρχείο CA:

cafile=/path/to/approved-ca-bundle.pem
strict-ssl=true

Χρησιμοποιήστε την πραγματική εγκεκριμένη συλλογή για εκείνο το περιβάλλον. Το strict-ssl=false αποδυναμώνει την επαλήθευση πιστοποιητικών· δεν αντικαθιστά την επιλογή σωστού proxy ή υλικού εμπιστοσύνης.

Στο τέλος των δοκιμών αφαιρέστε τις παρακάμψεις έργου που προσθέσατε και επανεξετάστε τις ενεργές τιμές. Έτσι το έργο κληρονομεί την προηγούμενη ρύθμιση χωρίς αλλαγές σε άλλα έργα του ίδιου μηχανήματος.

Σχετικά άρθρα