Zvese zvaunofanira kuziva nezve npm mapakeji uye nodebbs

Kugadziridza kwekupedzisira: 12/30/2025
  • npm inoshanda senzvimbo huru yekunyoresa ma package uye senzira huru yeCLI yekuisa, kugadzirisa, kubvisa uye kuongorora zvinoenderana neNode.js.
  • Mapurojekiti anovimba ne package.json kuti atsanangure ma dependencies, scripts, uye entry points kuburikidza neminda yakaita se main, exports, imports uye type.
  • Kuiswa kwenzvimbo vs kwepasi rose, semver ranges, uye dependencies types (dependencies, devDependencies, optionalDependencies) zvinodzora mashandisirwo uye kupi mapakeji.
  • Kutumira zvinhu kunze kwenyika zvakachipa, kutumirwa kwezvinhu kunze kwenyika zvine conditional uye kupinza zvinhu kunze kwenyika zvinopa simba rekutonga zvinhu zvakaita se nodebbs munzvimbo dzakasiyana.

npm package nodebbs

Kana uchiedza kunzwisisa kuti sei npm package yakaita se "nodebbs" inokodzera muNode.js ecosystem, unofanira kutanga wanzwisisa chii chinonzi npm, marongerwo emapakeji, uye kuti Node inogadzirisa sei uye inofumura sei mamodule. Mapurojekiti eNode.js emazuva ano anonyanya kuvimba ne npm, kwete kungoisa kodhi chete asiwo nekutarisira mascript, kuchengetedzeka, shanduro, uye kuti package yako inodyiwa sei nevamwe.

Gwaro iri rinotsanangura npm kubva pasi zvichikwira — chii, mashandiro anoita mapakeji emuno neepasi rose, maitiro ekuisa, kugadzirisa uye kubvisa, maitiro package.json yakarongeka, uye kuti zvinhu zvepamusoro zvakaita se exports uye imports minda inodzora zvinoitwa nepakeji yako (semuenzaniso, injini yeforamu yakaita se nodebbs) kune vatengi. Zvese zvinotsanangurwa neChirungu chisina kuoma nemienzaniso yakawanda kuitira kuti ugone kuburitsa nekushandisa npm packages nechivimbo.

Chii chinonzi npm uye nei chichikosha pamapakeji akaita se nodebbs

npm (Node Package Maneja) chishandiso chemirairo uye chishandiso chikuru chepamhepo chemahara eNode.js. Paunoisa Node.js pane yako system, npm inoiswa otomatiki, zvichikupa mukana wekusvika nekukurumidza kumamiriyoni emamodule anogona kushandiswazve akaburitswa nenharaunda pa npmjs.com.

The npm registry ndiyo nzvimbo yakakura kwazvo yekodhi yemutauro mumwe chete pasi rose, ine mapakeji anodarika miriyoni akaburitswa anofukidza mabasa ese angafungidzirika. Mapakeji aya anotangira pazvishandiso zvidiki (basa rimwe chete) kusvika kumafuremu akakwana, maCLI, uye mapuraneti ekushandisa anosimudzira maapplication ekugadzira zuva rega rega.

pakutanga, npm yakagadzirwa kungoti igadzirise zvinoenderana nemapurojekiti eNode.js ekumashure, asi nhasi uno chishandiso chikuru chekushanda kwepamberi. Unogona kuisa React, maturusi akaita seWebpack kana Vite, CSS frameworks, test runners, nezvimwe zvakawanda - zvese zvinogoverwa semapakeji eNpm.

Paunenge uchishanda nepakeji chaiyo yakaita se nodebbs, npm ine basa rekurodha kodhi yayo, kugadzirisa zvinoenderana nezvinodiwa, kuchengetedza shanduro dzacho dzichienderana muchikwata chako, uye kugadzirisa chero zvinyorwa kana maCLI azvinoburitsa. Ndosaka kunzwisisa npm kuchikosha kana uchida kuongorora, kugadzirisa, kana kutoburitsa pasuru iwe pachako — ona kurwiswa kwenzvimbo dzekushandisa npm kwakapararira.

Node.js, npm uye maitiro ekuisa

Kuti ushandise chero npm package - kusanganisira nodebbs - unoda Node.js na npm zvakaiswa pamuchina wako. npm yakaunganidzwa neNode, saka unongoisa Node kubva pawebhusaiti yepamutemo uye wagadzirira kutanga.

Maitiro anokurudzirwa ndeekuisa Node.js kuburikidza nemaneja weshanduro senge nvm, izvo zvinokutendera kuti uchinje pakati peNode dzakawanda nenpm. Izvi zvinoita kuti zvive nyore kuyedza purojekiti yako neNode dzakasiyana uye zvinodzivirira matambudziko emvumo anogona kuoneka nevanogadzira system yese.

Unogona kukurumidza kuona kana Node na npm zvatovapo nekuvhura terminal wobva wamhanya: node -v kutarisa vhezheni yeNode uye npm -v kusimbisa vhezheni ye npm.

Kana Node.js isipo kana kuti vhezheni yako yanyanya kukura, dhawunirodha Kuburitswa kweRutsigiro Rwenguva Refu (LTS) kubva nodejs.org yesystem yako yekushandisa. PaWindows neMacOS, mugadziri anogadzirisa zvese; paLinux unogona kushandisa NodeSource kana nzira yaunofarira yekugovera, kana zvakare maneja weshanduro senge nvm.

Pfungwa dzepakati npm: mapakeji, mamodule uye rejista

Munyika yeNode.js, a "pakeji" ikodhi yakaunganidzwa inosanganisira zvese zvinodiwa pamodule kana application: mafaira eJavaScript, metadata, magwaro, uye dzimwe nguva kugadzira maartifacts. Mapakeji anowanzo gara mudhairekitori rine package.json faira rinotsanangura zvirimo.

A "Module" iyuniti yekodhi yaunogona kupinza muNode.js uchishandisa require() or import, uye npm package inowanzo buritsa module imwe kana kupfuura kuti vatengi vashandise. Semuenzaniso, raibhurari ye utility inogona kutumira module imwe chete huru, nepo package yakaoma senge nodebbs inogona kubudisa mapoinzi akawanda ekupinda kweserver ne client parts.

Mapakeji anoburitswa kune veruzhinji npm registry (kana kumarejista epachivande) kuitira kuti vamwe vagadziri vagone kuaisa nemurairo uri nyore. Pasi pehood, npm inodhawunirodha mafaira, inosimbisa muti wekuvimbika, uye inochengeta zvese mu node_modules folda kuitira kuti app yako ikwanise kuipinza.

Mienzaniso yakakurumbira yemapakeji eNpm inosanganisira mafomati akadai se Ratidza, React uye Vue, zvishandiso zvakaita seLodash neChalk, vabatsiri ve backend vakaita seMongoose neSocket.io, uye maturusi akadai seJest, Webpack, Babel, Nodemon, neAxios. Pakeji yakaita se nodebbs inogona kugara pamwe chete neizvi seimwe nzira inogoneka kuiswa yaunobatanidza mu application stack yako.

Kushanda na npm pamutsetse wekuraira

The npm command-line interface (CLI) ndiyo nzira yaunoisa, kubvisa, kugadzirisa, uye kuongorora mapakeji, pamwe chete nemafambiro aunoita mapurojekiti. PaWindows unowanzo vhura Command Prompt kana PowerShell; pa macOS neLinux, uchashandisa terminal.

Mimwe yemirairo inowanzoshandiswa ye npm ndeiyi npm install, npm uninstall, npm update, npm init, npm start, npm test, uye npm publishPamwe chete, mirairo iyi inofukidza zvinenge zvese zvaunoda kuti utarisire kutsamira kwepurojekiti yeNode.js uye mabasa ehupenyu hwese.

Kuti uise pasuru itsva munharaunda yako muprojekiti yako, unowanzo mhanya npm install <package-name> kubva pamudzi wepurojekiti. Izvi zvinodhawunirodha pasuru iyi ku node_modules uye, ne npm yemazuva ano, inowedzera otomatiki chinyorwa pasi pe dependencies in package.json.

Kuiswa kwepasi rose, uchishandisa npm install -g <package-name>, zvakachengeterwa maturusi aunoda kuti awanikwe kwese kwese pasystem yako — zvinhu zvakaita se nodemon, typescript, kana mamwe maCLI. Maraibhurari ako eapp-level (kusanganisira nodebbs) anowanzo kuve emunharaunda dependencies panzvimbo.

Kutanga chirongwa cheNode uye basa re package.json

Chirongwa chega chega cheNode.js chakakomba chinotanga ne package.json faira, iro rinoshanda semanifest yeapp yako kana raibhurari. Rinochengeta metadata (zita, vhezheni, tsananguro), manyorerwo, zvinoenderana, uye ruzivo nezvekuti package inofanira kutakurwa sei.

Unogadzira faira iri nekumhanya npm init muforodha risina chinhu, wozopindura mibvunzo mishoma nezvechirongwa ichi. Kana uchida kusiya mibvunzo, npm init -y inogadzira zvishoma package.json nemaitiro akajairika aunogona kugadzirisa gare gare.

Kamwe package.json iripo, pasuru yega yega yaunoisa inonyorwa pasi peimwe ye dependencies, devDependencies, kana zvimwe zvikamu zvakatsaurirwa. Izvi ndizvo zvinobvumira mumwe mugadziri kuti agadzire repo yako uye ongomhanya npm install kudzoreredza muti wakazara wekuvimba.

Kuti uwane pasuru yakaita se nodebbs yaungade kuburitsa, package.json inozivisawo zita repakeji, nzvimbo dzekupinda, uye chero minda yakaita se main, exports, kana type izvo zvinodzora kuti Node inogadzirisa sei mamodule ayo. Izvi zvinoita kuti package.json chinonyanya kukosha pakushandisa uye kugadzira mapakeji eNpm.

Kuiswa kwepakeji dzeNPM dzemunharaunda vs dzepasi rose

Mapakeji emuno akaiswa muchirongwa chiripo node_modules dhairekitori uye inowanikwa chete mukati meprojekiti iyoyo. Paunotanga npm install express or npm install nodebbs mufolda yepurojekiti yako, pasuru inova chikamu chegirafu yekuvimba kweapp iyoyo.

Nzira iyi yekuisa zvinhu munharaunda inodzivirira kusawirirana kweshanduro pakati pemapurojekiti nekuti purojekiti yega yega ine makopi ayo ezvinoenderana nazvo. Imwe app inogona kushandisa Express 4 nepo imwe ichishandisa Express 5, uye hadzizopindirani.

Mapakeji epasi rose, akaiswa ne npm install -g, dzinoiswa munzvimbo yese yesystem uye dzinowanzo buritsa maturusi emirairo. Unogona kushandisa izvi kune nodemon, typescript, kana kuti kune vanogadzira mapurojekiti epasi rose, asi hauwanzoda kuti kodhi yekushandisa senge nodebbs ive yepasi rose.

npm zvakare inokutendera kuti uchinje prefix yekuisa kwepasi rose ne npm config set prefix <path>, izvo zvinobatsira kana usina kodzero dzekutonga kana uchida kudzivirira zvikanganiso zvemvumo paunenge uchiisa maCLI epasi rose. Nenzira iyoyo, maturusi ako epasi rose anogara mudhairekitori rinonyorwa nemushandisi.

Kugadzirisa zvinoenderana: kuisa, kugadzirisa, uye kubvisa

Mubasa rezuva nezuva, uchapedza nguva yakawanda kuwedzera, kugadzirisa, uye dzimwe nguva kubvisa npm dependenciesnpm inopa mirairo iri nyore kune yega yega yemabasa aya, munharaunda nepasi rose.

Kuisa zvese zvinoenderana neprojekiti iripo kuri nyore sekumhanya npm install mudhairekitori uko package.json lives. npm inoverenga runyorwa rwe dependencies uye devDependencies uye inodzokororazve iyo node_modules faira zvinoenderana.

Kuti uwedzere kuvimba kamwe chete, unomhanya npm install <package-name> (kana npm i <package-name> muchidimbu), zvingasarudzwa nemireza yakaita se --save-dev, --save-optional, kana --no-saveMireza iyi inodzora kana package yacho yakanyorwa seyakajairika, dependency yekuvandudza chete, kana kuti isina kunyorwa zvachose.

Kugadzirisa zvinoenderana kunogona kuitwa neprojekiti yese ne npm update, iyo inovandudza mapakeji kuita shanduro itsva dzichiri kugutsa huwandu hweshanduro dziri mu package.jsonUnogona zvakare kunanga pasuru imwe chete ne npm update <package-name>, kana kuwedzera -g kana uri kugadzirisa chishandiso chepasi rose.

Kubvisa pasuru kwakaenzana: npm uninstall <package-name> inoibvisa kubva node_modules uye inochenesa package.json kupinda. Kushandisa npm uninstall -g inoita zvimwe chete pamapakeji akaiswa pasi rose.

Kunzwisisa ma dependencies, devDependencies uye optionalDependencies

In package.json, npm inosiyanisa pakati pemhando dzakasiyana dzezvinhu zvinoenderana nenguva uye kuti zvinodiwa sei. Kuparadzanisa uku kwakanaka kunoita kuti bundle yako yekugadzira isanyanya kuoma uye maturusi ako anochinjika.

dependencies inonyora mapakeji anodiwa kuti application yako ishande mukugadzirwa. Kune web app, izvo zvinogona kusanganisira Express, Mongoose, kana kunyange nodebbs pachayo kana uri kuiisa sechikamu cheserver stack yako.

devDependencies ine mapakeji anodiwa chete panguva yekugadzira kana yekuvaka, akadai seJest, ESLint, Webpack, Babel, kana Nodemon. Aya haaisirwi paunotanga kushandisa npm install --production, izvo zvinoita kuti nzvimbo yako yekugadzira ive nyore.

optionalDependencies ine mapakeji anovandudza app yako asi haadiwi zvakanyanya. Kana kutsamira kwesarudzo kukatadza kuiswa, npm haizoitore sechikanganiso chinouraya; kodhi yako inotarisirwa kubata kusavapo kwayo zvakanaka.

Mireza yakaita se --save-prod (zvinowanzo shandiswa), --save-dev (kana -D), Uye --save-optional kudzora uko pasuru itsva yakaiswa inorekodhwa. Kare kwaive nepfungwa yakajeka --save mureza, asi zvinonaka zvemazuva ano zve npm npm install <name> senzira yekuchengetedza zvinhu zvinoenderana nezvinodiwa.

Semver uye kuisa mamwe mapakeji chaiwo

npm inoshandisa shanduro yemazwi (semver) kugadzirisa shanduro dzemapakeji, izvo zvakakosha kana uchivimba nemaraibhurari akaomarara kana pakeji yakaita se nodebbs inogona kuchinja nekufamba kwenguva. Semver anoshandisa pateni MAJOR.MINOR.PATCH (Semuyenzaniso, 1.4.3).

Mumwedzi mishoma, Nhamba huru kuwedzera kwehuwandu kana paine shanduko dzinoitika, DUKU zvekuwedzera zvinhu zvinoenderana nekumashure, uye CHIMBATU kugadzirisa zvikanganiso zvisingafanirwe kutyora kodhi iripo. Iyi modhi inobvumira mapakeji kushanduka pasina kugara achipwanya mapurogiramu ari pasi.

Unogona kuisa vhezheni chaiyo yepakeji ne npm install package@version, Semuyenzaniso npm install express@4.17.1Izvi zvinobatsira kana uchida kuvharira purojekiti yako kune vhezheni inozivikanwa zvakanaka uku uchiyedza zvitsva zvakasiyana.

mukati package.json, unogona kudoma flexible ranges uchishandisa mavara akaita se ^ uye ~ kana kushandisa "latest" or * kuti ugare uchitora chinyorwa chitsva chinoenderana nacho. Semuenzaniso, "express": "^4.1.1" inoudza npm kuti ishandise chero vhezheni ye4.x inoenderana pamusoro pe4.1.1, asi kwete 5.x.

Mapakeji epasi rose uye maturusi eCLI

Mapakeji epasi rose npm anonyanya kushandiswa kuisa maturusi emutsetse wemirairo Zvamunoda kuti zviwanikwe zvisinei nekuti muri kushanda paprojekiti ipi. Maturusi aya anonyoresa ma executables paPATH yenyu saka munogona kuashandisa zvakananga kubva paterminal.

Mienzaniso yemapakeji epasi rose anobatsira anosanganisira nodemon yekuisa Node patsva otomatiki panguva yekugadzira uye typescript yekuunganidza TypeScript kubva chero kupi zvako pamuchina wako. Kuisa kwacho kwaitwa ne npm install -g <package-name>.

Unogona kuongorora kuti ndeapi mapakeji epasi rose akaiswa nekumhanya npm list -g --depth=0, iyo inodhinda runyorwa rwakati sandara rwemamodules aripo pasi rose neshanduro dzawo. Izvi zvinobatsira pakuongorora kuseta kwako kana kugadzirisa matambudziko eCLI.

Kugadzirisa kana kubvisa maturusi epasi rose kunoshanda nenzira imwecheteyo neyemuno: shandisa npm update -g <package-name> kugadzirisa uye npm uninstall -g <package-name> kuti uzvibvise. Kuchengetedza maturusi epasi rose ari matsva kunoita kuti uwane zvigadziriso zvitsva uye zvidziviriro zvekuchengetedza.

Kunyora pasi, kuongorora uye kuongorora mapakeji akaiswa

Sezvo purojekiti yako ichikura, kutevera mapakeji akaiswa uye mavhezheni aanoshandisa kunowedzera kukosha. npm inopa mirairo ku nyora pasi uye ongorora muti wako wekuvimba.

npm list inoratidza huwandu hwemapakeji akaiswa munharaunda muprojekiti iripo, kusanganisira ma nested dependencies ayo ma direct dependencies ako anovimba nawo. Unogona kuona kuti ndeapi mavhezheni akaiswa uye kuti akabatana sei.

npm list -g inoshanda zvakafanana asi pamapakeji akaiswa pasi rose, uye kuwedzera --depth=0 inogumira pakubuda kwedata kuzvinhu zvepamusoro chete. Izvi zvinoita kuti data rirambe richiverengwa, kunyanya kana paine zvakawanda zvinotsamira padata.

Kuti zvive nyore, npm inosanganisira chinhu chekuongorora: kumhanya npm audit inoongorora muti wako wekuvimbika kubva kudhatabhesi renjodzi uye inoburitsa mushumo wematambudziko anozivikanwa — ona iyo Chiitiko chehonye cheShai HuludKazhinji unogona kugadzirisa akawanda acho otomatiki uchishandisa npm audit fix, izvo zvinoita kuti shanduro dzinoenderana nezvinodiwa nevatengi dzienderane nekuburitswa kwakachengeteka kana zvichibvira.

Kuongorora nguva dzose nekugadzirisa zvinhu kunoderedza zvikuru njodzi yekufumura application yako kune zvikanganiso zvinozivikanwa zvakavanzwa mumamodule evamwe — semuenzaniso, ona kutevedzera package ye npm yakaipaIzvi zvinonyanya kukosha kana uchivimba nemapakeji makuru akadai se nodebbs izvo zvinogona kuunza cheni yakadzama yekuvimbana.

Kushandisa mapakeji akaiswa mukodhi yako yeNode.js

Kana wangoisa pasuru munharaunda yako, inenge yagadzirira kupinzwa muNode.js application yako uye kushandiswa semamwe mamodule ese. Node yagara ichishandisa Mamodule eCommonJS Via require(), asi mapurojekiti emazuva ano anowanzo vimbawo nemamodule eECMAScript ane import.

Kune CommonJS, unogona kunyora const express = require('express') or const nodebbs = require('nodebbs') pamusoro pefaira rako kuti uunze main export yepakeji. Kubva ipapo, unoshandisa documented API yayo kugadzirisa nzira, middleware, kana mu nyaya ye nodebbs, maficha eforamu.

Kune mamodule eECMAScript (kana yako package.json ane "type": "module" kana kuti unoshandisa .mjs mafaira), iwe unoita izvozvo panzvimbo pezvo import express from 'express'Mapakeji mazhinji emazuva ano ikozvino anoburitsa ma ESM builds, uye Node inotsigira mafomati ese ari maviri.

Ramba uchifunga kuti mapakeji makuru anowanzo buritsa mapoinzi akawanda ekupinda, saka unogona kuendesa ma submodules akadai se import { Router } from 'express' or import feature from 'nodebbs/feature.js', zvichienderana nekuti munyori wepakeji akaronga sei zvinhu zvavo zvinotumirwa kunze kwenyika. Apa ndipo panowanikwa zvinhu exports munda uri mupakeji package.json inova yakakosha.

npm scripts: otomatiki mabasa ne package.json

Kupfuura manejimendi ekuvimba, npm inokasira kuita basa riri nyore kuburikidza ne scripts chikamu che package.jsonMagwaro anokutendera kuti utsanangure mazita mapfupi emirairo yakajairika yaunoda kumhanyisa panguva yekugadzira kana kuisirwa.

Muenzaniso wekutanga ndewekutsanangura "start": "node app.js" pasi scripts, yaunomhanya nayo uchishandisa npm startIzvi zviri nyore kurangarira nekugovana pane mutsetse murefu wemirairo, uye zvinoshanda nguva dzose munzvimbo dzakasiyana-siyana.

Unogona kugadzira zvinyorwa zvekumhanya bvunzo, kuvaka midziyo yekumberi, kunyora, kutanga maseva ekuvandudza, kugadzira madhatabhesi, kana kutoronga mabasa ane chekuita nepakeji yakaita se nodebbsSemuenzaniso, ungave uine script yekumhanyisa kutama kwedatabase usati watanga forum server.

npm inochengetera nzira pfupi dze start, test, restart, uye stop, asi chero imwe script yakagadzirwa inoshandiswa nayo npm run <script-name>Pasi pehood, npm inogadzirisa nharaunda kuitira kuti maCLI akaiswa munharaunda ave paPATH, ndosaka mirairo yakaita se webpack or jest kazhinji vanoshanda vasina nzira yakazara.

Nzvimbo dzepamusoro dzekupinda mupakeji: huru, kutumira kunze kwenyika uye kupinzwa kwenyika

Pamapakeji aunoburitsa — senge fungidziro nodebbs module — kudzora mafaira anoonekwa nevatengi kwakakosha kuti API igadzikane uye ichengetedzeke — zviitiko zvakaita se kunyora pasi kwemavara emhando ye npm ratidza njodzi yacho.

Mukuru main munda unongonongedzera kufaira rekutanga rekupinda, senge "main": "./index.js", uye inotsigirwa mune ese maNode versions. Vatengi vari kuita require('your-package') ndichawana faira iroro nekusingaperi.

Iyo itsva exports munda une simba guru: unogona kutsanangura nzvimbo dzakawanda dzekupinda, kutsigira kutengeswa kwezvinhu zvinoenderana nemamiriro ekunze kana module system, uye kuvharira mukana wekupinda munzira dzemukati dzausingade kuti vashandisi vavimbe nadzo. exports iripo, nzira dzakanyorwa zvakajeka chete ndidzo dzinowanikwa kuburikidza ne bare imports senge require('pkg/subpath').

An exports map inogona kudoma root entry pa ".", dzimwe nzira dzepasi dzakadai se "./feature", uye kunyange kufumurwa pachena kwe ./package.json kana zvichidikanwa. Izvi zvinokutendera kuti ugadzire nzvimbo yako yeAPI yeruzhinji nokungwarira uku uchichengetedza ruzivo rwekushandisa rwuri pachena.

Tumira mapatani uchishandisa * inokutendera kuti uvhure mafolda ese pasina kunyora faira rega rega; semuenzaniso, "./lib/*": "./lib/*.js" ichagadzira nzira dzese dzinoenderana. Unogona zvakare kuvharira mamwe maforodha ari nyore nekuagadzira kuti aenderane ne null, izvo zvinotadzisa vatengi kupinza nzira idzodzo.

Kutengeswa kwezvinhu kunze kwenyika zvine mamiriro ezvinhu uye kuvaka kwakakodzera nharaunda

Kutengeswa kunze kwenyika kune dzimwe nyika zvine mwero inokutendera kuti upe mafaira akasiyana zvichienderana nekuti package yako iri kushandiswa sei kana kuti kupi. Unogona kutumira chivakwa chimwe chakagadzirirwa import (ESM) uye imwe ye require() (CommonJS), kana kutovaka zvakasiyana zveNode nemabhurawuza.

Mamiriro akadai "import", "require", "node", "node-addons", "module-sync", uye "default" zvinogona kuoneka mu exports chinhu kuti usarudze chinangwa chakakodzera. Semuenzaniso, "import": "./index-module.js" uye "require": "./index-require.cjs" inopa rutsigiro rwema ESM/CommonJS maviri.

Mamiriro aya anoongororwa zvakatevedzana, saka unofanira kuanyora kubva zvakanyanya kunyanya kusvika zvisinganyanyi kukosha, kupedzisa ne "default" kudzokera kumashure kune nharaunda dzisingazivikanwe. Izvi zvinoita kuti dzimwe nguva dzekushanda (semuenzaniso, mabrowser loaders anoshandisa import maps) agone kushandisa package yako.

Node inokubvumirawo kuti uwane mamiriro ezvinhu, akadai sekuva ne "node" bazi rine zvese zviri zviviri "import" uye "require", pamwe nekamwe kakasiyana "default" iyo inotarisa kuvaka kwese. Kuchinjika uku kunobatsira zvikuru kana package yako ichitsamira pane native addons muNode asi ichishandisa polyfill kumwewo - ona kuchengetedzeka kwenpm kuri pasi pekumanikidzwa.

Kupfuura mamiriro akavakirwa mukati, Node inotsigira mamiriro akatsanangurwa nemushandisi anotumirwa kuburikidza nayo node --conditions=<name>, uye nharaunda yakakura yakabatana nemakiyi akadai se "browser", "types", "development", uye "production" kune zvimwe zviitiko zvine hunyanzvi. Izvi zvinobatsira kubatanidza maitiro pakati pemabundler, ma type checkers, uye nguva dzekushanda.

Subpath imports uye internal module aliases

Pamusoro pe exports, ivo imports munda mu package.json inokutendera kuti utsanangure ma "private import specifiers" anoshanda chete mukati mepakeji pachayo. Ma "specifiers" aya anotanga ne # kudzivirira kupesana nemapakeji ekunze.

Semuenzaniso, unogona kugadzira mepu "#dep" kune kuvimba kweNode munharaunda imwe uye polyfill mune imwe uchishandisa mappings ane mamiriro ari pasi pe importsKodhi mukati mepakeji yako yobva yaita import '#dep' uye inowana kuiswa kwakakodzera otomatiki.

Maitiro esubpath anogonawo kushandiswa mukati imports kugadzira mapoka emafaira emukati, akadai se "#internal/*.js": "./src/internal/*.js"Izvi zvinogadzira nzira dzakachena uye dzakagadzikana dzekupinza mamodule emukati uye zvinoita kuti ma refactor agone kudzorwa pasina kuburitsa ruzivo rwekushandisa kune vashandisi vako.

Mitemo yechisarudzo che imports girazi avo ve exports, kusanganisira zvirambidzo zvinochengetedza nzira dziri mukati memudzi wepakeji uye zvinorambidza kufamba uchienda ku node_modulesIzvi zvinochengetedza kuvharwa kwemasero uye zvinodzivirira maitiro anoshamisa.

Kuzvitarisa ndechimwe chinhu chepamusoro, chinobvumira kodhi iri mukati mepakeji kuti izvitumire zita chero bedzi exports mepu inotsanangurwa. Semuenzaniso, kana package yako yakatumidzwa zita "a-package" uye kutumira kunze kwenyika "." uye "./foo.js", mafaira emukati anogona kunyora import { something } from 'a-package' uye shandisa nzira imwe chete iyo vatengi vanowana.

Maitiro aya anodzivirira nzira dzakadzika dzehukama uye anovimbisa kuti zvinhu zvinopinzwa mukati zvinogara zvichiratidza miganhu yeAPI yeruzhinji inotsanangurwa ne exportsInoshandawo neCommonJS kuburikidza ne require('a-package/foo.js') kana nzira iyoyo yatumirwa kunze kwenyika.

npm uye Node's module resolution maficha inokupa simba rekutonga kuti mapakeji akaomarara — kusanganisira mainjini eforamu akaita se nodebbs — akarongeka sei, anoparadzirwa sei, uye anodyiwa sei. Nekuziva nzira dzekuisa, kutarisira dependency, semantic versioning, security audits, uye advanced entry-point configuration ne exports uye imports, unogona kuvaka, kubatanidza, uye kuchengetedza mapakeji emhando yepamusoro e npm anoramba akagadzikana uye achifanotaurwa sezvo codebase yako uye ecosystem yakaipoteredza zvichiramba zvichichinja.

auditoría de seguridad npm
Nyaya inoenderana:
Yakadzama gwara kune npm chengetedzo yekuongorora uye yekugovera-ketani kurwisa
Related posts: