Npm
એન. પી. એમ. એ એન. પી. એમ., ઇન્ક. દ્વારા જાળવવામાં આવતી જાવાસ્ક્રિપ્ટ પ્રોગ્રામિંગ લેંગ્વેજ માટેનું પેકેજ મેનેજર છે. એન. પી. એમ. એ જાવાસ્ક્રિપ્ટ રનટાઇમ એન્વાયર્નમેન્ટ Node.js માટે ડિફોલ્ટ પેકેજ મેનેજર છે અને તે Node.js ઇન્સ્ટોલરમાં ભલામણ કરેલ સુવિધા તરીકે શામેલ છે. તેમાં કમાન્ડ લાઇન ક્લાયન્ટનો સમાવેશ થાય છે, જેને એન. પી. એમ. પણ કહેવાય છે, અને એન. પી. એમ. રજિસ્ટ્રી તરીકે ઓળખાતા જાહેર અને પેઇડ-ફોર પ્રાઇવેટ પેકેજોનો ઓનલાઇન ડેટાબેઝ છે. રજિસ્ટ્રી ક્લાયન્ટ દ્વારા એક્સેસ કરવામાં આવે છે, અને ઉપલબ્ધ પેકેજોને એન. પી. એમ. વેબસાઇટ દ્વારા બ્રાઉઝ કરી શકાય છે અને શોધી શકાય છે. પેકેજ મેનેજર અને રજિસ્ટ્રીનું સંચાલન એન. પી. એમ., આઈ. એન. સી. દ્વારા કરવામાં આવે છે. હિસ્ટ્રી એન. પી. એમ. આઇઝેક ઝેડ. શ્લુએટર દ્વારા વિકસાવવામાં આવ્યું હતું, જે "મોડ્યુલ પેકેજિંગને ખૂબ જ ખરાબ રીતે કરવામાં આવ્યું હતું" અને પી. ઈ. એ. આર. (પી. એચ. પી.) અને સી. પી. એ. એન. (પર્લ) જેવા અન્ય સમાન પ્રોજેક્ટ્સમાંથી પ્રેરણા સાથે વિકસાવવામાં આવ્યું હતું. એન. પી. એમ. એ પી. એમ. માટે જાવાસ્ક્રિપ્ટ રિપ્લેસમેન્ટ છે, જે શેલ સ્ક્રિપ્ટ છે. જ્યારે "એન. પી. એમ". ને સામાન્ય રીતે "નોડ પેકેજ મેનેજર" માટે સંક્ષિપ્ત તરીકે સમજવામાં આવે છે, ત્યારે તે સત્તાવાર રીતે "એન. પી. એમ. એ ટૂંકાક્ષર નથી" માટે વપરાય છે. વપરાશ એન. પી. એમ. એવા પેકેજોને સંચાલિત કરી શકે છે જે ચોક્કસ પ્રોજેક્ટની સ્થાનિક નિર્ભરતા છે, તેમજ વૈશ્વિક સ્તરે સ્થાપિત જાવાસ્ક્રિપ્ટ સાધનો છે. જ્યારે સ્થાનિક પ્રોજેક્ટ માટે નિર્ભરતા વ્યવસ્થાપક તરીકે ઉપયોગ થાય છે, ત્યારે એન. પી. એમ. એક આદેશમાં, package.json ફાઇલ દ્વારા પ્રોજેક્ટની તમામ નિર્ભરતાઓને સ્થાપિત કરી શકે છે. package.json ફાઇલમાં, દરેક નિર્ભરતા સિમેન્ટીક સંસ્કરણ યોજનાનો ઉપયોગ કરીને માન્ય સંસ્કરણોની શ્રેણીનો ઉલ્લેખ કરી શકે છે, જે વિકાસકર્તાઓને તેમના પેકેજોને ઓટો-અપડેટ કરવાની મંજૂરી આપે છે, જ્યારે તે જ સમયે અનિચ્છનીય બ્રેકિંગ ફેરફારોને ટાળે છે. એન. પી. એમ. વિકાસકર્તાઓને તેમના પેકેજોને ચોક્કસ સંસ્કરણ સાથે ટેગ કરવા માટે વર્ઝન-બમ્પિંગ ટૂલ્સ પણ પ્રદાન કરે છે. એન. પી. એમ. package-lock.json ફાઇલ પણ પ્રદાન કરે છે જેમાં package.json માં સિમેન્ટીક સંસ્કરણનું મૂલ્યાંકન કર્યા પછી પ્રોજેક્ટ દ્વારા ઉપયોગમાં લેવાતા ચોક્કસ સંસ્કરણની એન્ટ્રી હોય છે. ક્લાયન્ટ એન. પી. એમ. ની કમાન્ડ-લાઇન ઇન્ટરફેસ ક્લાયન્ટ વપરાશકર્તાઓને રજિસ્ટ્રીમાં ઉપલબ્ધ જાવાસ્ક્રિપ્ટ મોડ્યુલોના વપરાશ અને વિતરણની મંજૂરી આપે છે. ફેબ્રુઆરી 2018 માં, આવૃત્તિ 5.7 માં એક સમસ્યા મળી આવી હતી જેમાં લિનક્સ સિસ્ટમો પર સુડો એન. પી. એમ. ચલાવવાથી સિસ્ટમ ફાઇલોની માલિકી બદલાઈ જશે, જે ઓપરેટિંગ સિસ્ટમને કાયમી ધોરણે તોડી નાખશે. એન. પી. એમ. આવૃત્તિ 6 માં, સ્થાપિત પેકેજોમાં સુરક્ષા નબળાઈઓને ઓળખવા અને સુધારવામાં વિકાસકર્તાઓને મદદ કરવા માટે ઓડિટ સુવિધા રજૂ કરવામાં આવી હતી. સુરક્ષા નબળાઈઓનો સ્રોત નોડ સિક્યુરિટી પ્લેટફોર્મ (એન. એસ. પી.) પર મળેલા અહેવાલોમાંથી લેવામાં આવ્યો હતો અને એન. પી. એમ. દ્વારા એન. એસ. પી. ના સંપાદન પછી એન. પી. એમ. સાથે સંકલિત કરવામાં આવ્યો છે. રજિસ્ટ્રીમાં રજિસ્ટ્રી પેકેજો એસ્મેસ્ક્રિપ્ટ મોડ્યુલ (ઇ. એસ. એમ.) અથવા કોમનજે. એસ. ફોર્મેટમાં હોય છે અને તેમાં જે. એસ. ઓ. એન. ફોર્મેટમાં મેટાડેટા ફાઇલનો સમાવેશ થાય છે. મુખ્ય એન. પી. એમ. રજિસ્ટ્રીમાં 13 લાખથી વધુ પેકેજો ઉપલબ્ધ છે. રજિસ્ટ્રીમાં સબમિશન માટે કોઈ ચકાસણી પ્રક્રિયા નથી, જેનો અર્થ છે કે ત્યાં મળેલા પેકેજો સંભવિત રીતે નીચી ગુણવત્તા, અસુરક્ષિત અથવા દૂષિત હોઈ શકે છે. તેના બદલે, જો એન. પી. એમ. નીચી ગુણવત્તા, અસુરક્ષિત અથવા દુર્ભાવનાપૂર્ણ હોવાના કારણે નીતિઓનું ઉલ્લંઘન કરે છે, તો એન. પી. એમ. પેકેજોને દૂર કરવા માટે વપરાશકર્તા અહેવાલો પર આધાર રાખે છે. એન. પી. એમ. પેકેજોની ગુણવત્તાનો નિર્ણય કરવામાં વિકાસકર્તાઓને મદદ કરવા માટે ડાઉનલોડની સંખ્યા અને આધારિત પેકેજોની સંખ્યા સહિતના આંકડાઓને ઉજાગર કરે છે. આંતરિક રીતે એન. પી. એમ. સાર્વજનિક રીતે ઉપલબ્ધ ડેટાનું સંચાલન કરવા માટે એન. ઓ. એસ. ક્યુ. એલ. કોચ ડી. બી. પર આધાર રાખે છે. સુરક્ષા અને વિક્ષેપ નિર્ભરતા સાંકળના મુદ્દાઓ માર્ચ 2016 માં, એન. પી. એમ. એ લેફ્ટ-પેડ નામના પેકેજ પછી પ્રેસનું ધ્યાન ખેંચ્યું હતું, જેના પર ઘણા લોકપ્રિય જાવાસ્ક્રિપ્ટ પેકેજો નિર્ભર હતા, જે સ્વ-શિક્ષિત સોફ્ટવેર એન્જિનિયર અઝર કોકુલુ અને કિક વચ્ચેના નામકરણ વિવાદના પરિણામે અપ્રકાશિત હતું. જો કે આ પેકેજ ત્રણ કલાક પછી ફરીથી પ્રકાશિત કરવામાં આવ્યું હતું, પરંતુ તેનાથી વ્યાપક વિક્ષેપ પડ્યો હતો, જેના કારણે એન. પી. એમ. એ ભવિષ્યમાં આવી જ ઘટનાને રોકવા માટે તેની પ્રકાશન ન કરવાની નીતિઓમાં ફેરફાર કર્યો હતો. એપ્રિલ 2020 માં, ઇઝ-પ્રોમિસ નામના એક નાના પેકેજને પરિણામે ઘણા મોટા અને મહત્વપૂર્ણ એપ્લિકેશનોની નિર્ભરતા હોવાના કારણે વિશ્વભરમાં સર્વરલેસ એપ્લિકેશનો અને જમાવટમાં આઉટેજ થયું હતું. સમાધાન અને વિક્ષેપકારક રીતે-સંપાદિત પેકેજો જુલાઈ 2018માં, લોકપ્રિય એસ્લિન્ટ-સ્કોપ પેકેજના જાળવણીકારની એન. પી. એમ. પ્રમાણપત્રો સાથે ચેડા કરવામાં આવ્યા હતા, જેના પરિણામે એસ્લિન્ટ-સ્કોપ, આવૃત્તિ 3.7.2નું દૂષિત પ્રકાશન થયું હતું. દુર્ભાવનાપૂર્ણ કોડે એસ્લિન્ટ-સ્કોપ ચલાવતા મશીનના એન. પી. એમ. પ્રમાણપત્રોની નકલ કરી અને તેમને હુમલાખોરને અપલોડ કર્યા. નવેમ્બર 2018 માં, એવું જાણવા મળ્યું હતું કે લોકપ્રિય પેકેજ ઇવેન્ટ-સ્ટ્રીમના સંસ્કરણ 3.3.6 પર નિર્ભરતા તરીકે દૂષિત પેકેજ ઉમેરવામાં આવ્યું હતું. ફ્લેટમેપ-સ્ટ્રીમ તરીકે ઓળખાતા દુર્ભાવનાપૂર્ણ પેકેજમાં એન્ક્રિપ્ટેડ પેલોડ હતું જે અમુક એપ્લિકેશનોમાંથી બિટકોઇન્સ ચોરી લેતું હતું. એન. પી. એમ. સંચાલકોએ વાંધાજનક પેકેજ દૂર કર્યું. જાન્યુઆરી 2022 માં, લોકપ્રિય પેકેજ રંગોના જાળવણીકારે અનંત લૂપમાં કચરાના લખાણને છાપતા ફેરફારોને આગળ ધપાવ્યા. જાળવણીકારે અન્ય એક લોકપ્રિય પેકેજ, ફેકર અને એન. પી. એમ. પર તેના પેકેજના ભંડારને પણ સાફ કરી દીધો, અને તેના સ્થાને એક આર. એ. ડી. એમ. ઈ. મૂક્યું જેમાં લખેલું હતું, "એરોન સ્વાર્ટઝનું ખરેખર શું થયું?" માર્ચ 2022માં, વિકાસકર્તા બ્રાન્ડન નોઝાકી મિલરે પેકેજ નોડ-આઈ. પી. સી. નું એક સંસ્કરણ બહાર પાડ્યું હતું જેમાં દૂષિત કોડ હતો જે યુક્રેન પર રશિયાના આક્રમણના વિરોધમાં બેલારુશિયન અને રશિયન આઈ. પી. સરનામાંવાળા વપરાશકર્તાઓની ફાઇલોને કાઢી નાખશે. Vue.js, જે નોડ-આઈ. પી. સી. નો અવલંબન તરીકે ઉપયોગ કરે છે, તેણે તેની અવલંબનને સુરક્ષિત સંસ્કરણમાં પિન કરી નથી, એટલે કે જો અવલંબનને નવીનતમ પેકેજ તરીકે લાવવામાં આવ્યું હોય તો Vue.js ના કેટલાક વપરાશકર્તાઓ દૂષિત પેકેજથી પ્રભાવિત થયા હતા. અસરગ્રસ્ત નિર્ભરતા યુનિટી હબના સંસ્કરણ 3.1 માં પણ ટૂંકમાં હાજર હતી; જો કે, આ મુદ્દાને દૂર કરવા માટે તે જ દિવસે હોટફિક્સ બહાર પાડવામાં આવ્યું હતું. વૈકલ્પિક મોડ્યુલર જાવાસ્ક્રિપ્ટ સ્થાપિત કરવા માટે એન. પી. એમ. ના સંખ્યાબંધ ઓપન સોર્સ વિકલ્પો છે, જેમાં આઇ. ડી., પી. એન. પી. એમ., એન. પી. એમ. ડી. અને યાર્નનો સમાવેશ થાય છે, જેમાંથી છેલ્લો ઓક્ટોબર 2016માં ફેસબુક દ્વારા બહાર પાડવામાં આવ્યો હતો. તેઓ બધા જાહેર એન. પી. એમ. રજિસ્ટ્રી સાથે સુસંગત છે અને મૂળભૂત રીતે તેનો ઉપયોગ કરે છે, પરંતુ વિવિધ ક્લાયન્ટ-બાજુના અનુભવો પ્રદાન કરે છે, જે સામાન્ય રીતે એન. પી. એમ. ક્લાયન્ટની તુલનામાં પ્રદર્શન અને નિર્ધારકતા સુધારવા પર કેન્દ્રિત હોય છે. સોફ્ટવેર રીપોઝીટરી સંદર્ભો બાહ્ય કડીઓ કમાન્ડ-લાઇન સોફ્ટવેર ફ્રી પેકેજ મેનેજમેન્ટ સિસ્ટમ્સ ફ્રી સોફ્ટવેર પ્રોગ્રામ્ડ ઇન જાવાસ્ક્રિપ્ટ જાવાસ્ક્રિપ્ટ પ્રોગ્રામિંગ ટૂલ્સ માઈક્રોસોફ્ટ ફ્રી સોફ્ટવેર સોફ્ટવેર આર્ટિસ્ટિક લાઇસન્સ 2010 સોફ્ટવેરનો ઉપયોગ કરીને પણ જુઓ.