Η εταιρεία μου διαθέτει έναν διακομιστή Nexus 3 όπου αποθηκεύουμε όλα τα τεχνουργήματα μας για ένα περιβάλλον κυρίως Maven. Προσπαθώ να χρησιμοποιήσω το Node για να κάνω τα ίδια πράγματα με το Maven:
- Αναπτύξτε σε έναν κατάλογο στιγμιότυπων ή εκδόσεων που βασίζεται σε μια σημαία χωρίς σκληρό κώδικα (μπορεί να είναι σε εργασία Jenkins)
- Προσθέστε αυτόματα μια πρόσθετη μεταβλητή έκδοσης στα στιγμιότυπα, ώστε να μπορεί να "παρακαμφθεί". Δεδομένου ότι στο Nexus αρέσουν μόνο τα μοναδικά ονόματα, θα χρειαζόμουν κάποιο τρόπο για να αποθηκεύσω το ενσωματωμένο τεχνούργημα ως x.y.z-SNAPSHOT.1 και μετά ως x.y.z-SNAPSHOT.2, έτσι ώστε μια ανάκτηση του x.y.z-SNAPSHOT να τραβήξει τα πιο πρόσφατα
Στην ιδανική περίπτωση, η μόνη διαφορά μεταξύ της δημιουργίας/ανάπτυξης ενός SNAPSHOT και ενός RELEASE θα ήταν npm publish <snapshot/release indicator flag>
και θα μπορούσε να αναζητήσει, ας πούμε το αρχείο .npmrc τη διεύθυνση URL, αλλά να χρησιμοποιήσει τα διαπιστευτήρια που ορίζονται στο μηχάνημα που κάνει την κατασκευή/ανάπτυξη (έτσι ώστε οι προγραμματιστές να να μην έχετε κύρια διαπιστευτήρια). Δυσκολεύομαι να το ρυθμίσω. Το εύρος NPM φαίνεται πολλά υποσχόμενο, αλλά αυτό μπορεί να ισχύει μόνο για πακέτα/έργα που θα έχουν ένα πεδίο εφαρμογής και όχι υπό όρους.
Έχω δοκιμάσει αυτήν τη στιγμή ένα npm publish --registry=<url>
, αλλά απέτυχε με ένα σφάλμα που λέει ότι πρέπει να χρησιμοποιήσω npm adduser
. Δεν είμαι σίγουρος πώς ακριβώς να παρέχω τα διαπιστευτήρια και ποια να τα δώσω (του δίνω διαπιστευτήρια για να αποθηκεύσει το τεχνούργημα ο χρήστης του Nexus ή απλά το NPM δεν επιτρέπει στον τρέχοντα χρήστη (χρήστη Jenkins) να δημοσιεύσει;).