[{"data":1,"prerenderedAt":-1},["Reactive",2],{"content-/ko/articles/general/npm-install":3},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"_empty":6,"title":8,"description":9,"excerpt":10,"topic":21,"authors":22,"tags":26,"updatedAt":30,"createdAt":30,"body":31,"_type":961,"_id":962,"_source":963,"_file":964,"_extension":965},"/ko/articles/general/npm-install","general",false,"","NPM Install","NPM을 사용하여 종속성을 설치하는 방법",{"type":11,"children":12},"root",[13],{"type":14,"tag":15,"props":16,"children":17},"element","p",{},[18],{"type":19,"value":20},"text","NPM을 사용하여 종속성을 설치하는 것은 주의 사항을 모르면 다소 혼란스러울 수 있습니다.","일반",[23],{"name":24,"avatar":25},"Shaun Chong","levi.png",[27,28,29],"node","npm","javascript","2026-05-04T06:52:56.000Z",{"type":11,"children":32,"toc":950},[33,37,48,68,75,80,130,136,145,247,254,265,569,586,592,719,744,750,767,784,802,838,853,877,904,915,929,934,943],{"type":14,"tag":15,"props":34,"children":35},{},[36],{"type":19,"value":20},{"type":14,"tag":38,"props":39,"children":42},"callout",{"title":40,"type":41},"부인 성명","warning",[43],{"type":14,"tag":15,"props":44,"children":45},{},[46],{"type":19,"value":47},"한국어 실력이 부적하여 이 글이 구글 번역기를 주로 활용했기 때문에 부정확한 문법과 어휘가 있을수 있습니다. 이 점 양해 부탁드리며, 추후에 다시 검토하여 수정하도록 하겠습니다.",{"type":14,"tag":15,"props":49,"children":50},{},[51,53,59,61,66],{"type":19,"value":52},"NPM 저장소에서 종속성을 설치할 수 있는 명령어는 ",{"type":14,"tag":54,"props":55,"children":56},"code-inline",{},[57],{"type":19,"value":58},"npm install",{"type":19,"value":60},"과 ",{"type":14,"tag":54,"props":62,"children":63},{},[64],{"type":19,"value":65},"npm ci",{"type":19,"value":67}," 두 가지가 있습니다.",{"type":14,"tag":69,"props":70,"children":72},"h2",{"id":71},"npm-install-일반-개발",[73],{"type":19,"value":74},"npm install (일반 개발)",{"type":14,"tag":15,"props":76,"children":77},{},[78],{"type":19,"value":79},"이 명령어는 개발자가 로컬 환경에서 개발하거나 종속성을 업데이트할 때 사용합니다.",{"type":14,"tag":81,"props":82,"children":83},"ul",{},[84,103,120],{"type":14,"tag":85,"props":86,"children":87},"li",{},[88,94,96,101],{"type":14,"tag":89,"props":90,"children":91},"strong",{},[92],{"type":19,"value":93},"기능",{"type":19,"value":95},": ",{"type":14,"tag":54,"props":97,"children":98},{},[99],{"type":19,"value":100},"package.json",{"type":19,"value":102}," 파일을 읽어 설치할 종속성을 확인합니다. 새 패키지를 설치하거나 기존 패키지를 지정된 범위(예: ^1.2.3) 내의 최신 버전으로 업데이트할 수 있습니다.",{"type":14,"tag":85,"props":104,"children":105},{},[106,111,113,118],{"type":14,"tag":89,"props":107,"children":108},{},[109],{"type":19,"value":110},"수정 사항",{"type":19,"value":112},": 설치 후 ",{"type":14,"tag":54,"props":114,"children":115},{},[116],{"type":19,"value":117},"package-lock.json",{"type":19,"value":119}," 파일을 주기적으로 업데이트하여 특정 버전을 반영합니다.",{"type":14,"tag":85,"props":121,"children":122},{},[123,128],{"type":14,"tag":89,"props":124,"children":125},{},[126],{"type":19,"value":127},"속도",{"type":19,"value":129},": 종속성을 해결하고 최신 버전을 찾기 위해 네트워크 요청을 수행해야 하므로 일반적으로 속도가 느립니다.",{"type":14,"tag":69,"props":131,"children":133},{"id":132},"npm-ci-자동화된-환경",[134],{"type":19,"value":135},"npm ci (자동화된 환경)",{"type":14,"tag":15,"props":137,"children":138},{},[139,143],{"type":14,"tag":54,"props":140,"children":141},{},[142],{"type":19,"value":65},{"type":19,"value":144},"은 \"클린 설치(Clean Install)\"의 약자입니다. 이 명령어는 CI/CD 환경에서 예측 가능하고 안정적인 종속성 설치를 위해 사용됩니다.",{"type":14,"tag":81,"props":146,"children":147},{},[148,175,209,226],{"type":14,"tag":85,"props":149,"children":150},{},[151,155,156,160,162,166,168,173],{"type":14,"tag":89,"props":152,"children":153},{},[154],{"type":19,"value":93},{"type":19,"value":95},{"type":14,"tag":54,"props":157,"children":158},{},[159],{"type":19,"value":100},{"type":19,"value":161}," 파일을 무시하고 ",{"type":14,"tag":54,"props":163,"children":164},{},[165],{"type":19,"value":117},{"type":19,"value":167},"(또는 ",{"type":14,"tag":54,"props":169,"children":170},{},[171],{"type":19,"value":172},"npm-shrinkwrap.json",{"type":19,"value":174},")에서 직접 종속성을 설치합니다.",{"type":14,"tag":85,"props":176,"children":177},{},[178,183,184,189,191,195,196,200,202,207],{"type":14,"tag":89,"props":179,"children":180},{},[181],{"type":19,"value":182},"엄격성",{"type":19,"value":95},{"type":14,"tag":54,"props":185,"children":186},{},[187],{"type":19,"value":188},"lockfile",{"type":19,"value":190},"이 반드시 존재해야 하며, ",{"type":14,"tag":54,"props":192,"children":193},{},[194],{"type":19,"value":100},{"type":19,"value":60},{"type":14,"tag":54,"props":197,"children":198},{},[199],{"type":19,"value":188},{"type":19,"value":201},"이 ",{"type":14,"tag":89,"props":203,"children":204},{},[205],{"type":19,"value":206},"동기화되지 않은",{"type":19,"value":208}," 경우 오류를 발생시킵니다.",{"type":14,"tag":85,"props":210,"children":211},{},[212,217,219,224],{"type":14,"tag":89,"props":213,"children":214},{},[215],{"type":19,"value":216},"클린 상태",{"type":19,"value":218},": 설치 시작 전에 ",{"type":14,"tag":54,"props":220,"children":221},{},[222],{"type":19,"value":223},"node_modules",{"type":19,"value":225}," 폴더를 자동으로 삭제하여 새롭고 예측 가능한 설치를 보장합니다.",{"type":14,"tag":85,"props":227,"children":228},{},[229,233,235,239,241,245],{"type":14,"tag":89,"props":230,"children":231},{},[232],{"type":19,"value":127},{"type":19,"value":234},": 버전 확인을 건너뛰고 ",{"type":14,"tag":54,"props":236,"children":237},{},[238],{"type":19,"value":188},{"type":19,"value":240},"을 업데이트하지 않으므로 일반적으로 ",{"type":14,"tag":54,"props":242,"children":243},{},[244],{"type":19,"value":58},{"type":19,"value":246},"보다 빠릅니다.",{"type":14,"tag":248,"props":249,"children":251},"h3",{"id":250},"동기화-오류",[252],{"type":19,"value":253},"동기화 오류",{"type":14,"tag":15,"props":255,"children":256},{},[257,259,263],{"type":19,"value":258},"최근 CI/CD 파이프라인에서 ",{"type":14,"tag":54,"props":260,"children":261},{},[262],{"type":19,"value":65},{"type":19,"value":264},"를 실행하려고 할 때 발생한 오류입니다.",{"type":14,"tag":266,"props":267,"children":272},"code",{"className":268,"code":270,"language":271,"meta":7},[269],"language-log","\"C:\\Windows\\system32\\cmd.exe\" /D /E:ON /V:OFF /S /C \"CALL \"D:\\agent\\_work\\_temp\\6d22faac-2828-45d6-9ee5-b47ff7afc488.cmd\"\"\nnpm error code EUSAGE\nnpm error\nnpm error `npm ci` can only install packages when your package.json and package-lock.json or npm-shrinkwrap.json are in sync. Please update your lock file with `npm install` before continuing.\nnpm error\nnpm error Missing: @emnapi/core@1.9.2 from lock file\nnpm error Missing: @emnapi/runtime@1.9.2 from lock file\nnpm error Missing: chokidar@5.0.0 from lock file\nnpm error Missing: chokidar@5.0.0 from lock file\nnpm error Missing: @types/node@25.6.0 from lock file\nnpm error Missing: chokidar@5.0.0 from lock file\nnpm error Missing: @types/node@25.6.0 from lock file\nnpm error Missing: chokidar@5.0.0 from lock file\nnpm error\nnpm error Clean install a project\nnpm error\nnpm error Usage:\nnpm error npm ci\nnpm error\nnpm error Options:\nnpm error [--install-strategy \u003Choisted|nested|shallow|linked>] [--legacy-bundling]\nnpm error [--global-style] [--omit \u003Cdev|optional|peer> [--omit \u003Cdev|optional|peer> ...]]\nnpm error [--include \u003Cprod|dev|optional|peer> [--include \u003Cprod|dev|optional|peer> ...]]\nnpm error [--strict-peer-deps] [--foreground-scripts] [--ignore-scripts] [--no-audit]\nnpm error [--no-bin-links] [--no-fund] [--dry-run]\nnpm error [-w|--workspace \u003Cworkspace-name> [-w|--workspace \u003Cworkspace-name> ...]]\nnpm error [-ws|--workspaces] [--include-workspace-root] [--install-links]\nnpm error\nnpm error aliases: clean-install, ic, install-clean, isntall-clean\nnpm error\nnpm error Run \"npm help ci\" for more info\nnpm error A complete log of this run can be found in: C:\\Users\\User\\AppData\\Local\\npm-cache\\_logs\\2026-04-10T05_56_48_557Z-debug-0.log\n##[error]Cmd.exe exited with code '1'.\n","log",[273],{"type":14,"tag":274,"props":275,"children":276},"pre",{},[277],{"type":14,"tag":266,"props":278,"children":279},{"__ignoreMap":7},[280,291,300,309,318,326,335,344,353,361,370,378,386,394,402,411,419,428,437,445,454,463,472,481,490,499,508,517,525,534,542,551,560],{"type":14,"tag":281,"props":282,"children":285},"span",{"class":283,"line":284},"line",1,[286],{"type":14,"tag":281,"props":287,"children":288},{},[289],{"type":19,"value":290},"\"C:\\Windows\\system32\\cmd.exe\" /D /E:ON /V:OFF /S /C \"CALL \"D:\\agent\\_work\\_temp\\6d22faac-2828-45d6-9ee5-b47ff7afc488.cmd\"\"\n",{"type":14,"tag":281,"props":292,"children":294},{"class":283,"line":293},2,[295],{"type":14,"tag":281,"props":296,"children":297},{},[298],{"type":19,"value":299},"npm error code EUSAGE\n",{"type":14,"tag":281,"props":301,"children":303},{"class":283,"line":302},3,[304],{"type":14,"tag":281,"props":305,"children":306},{},[307],{"type":19,"value":308},"npm error\n",{"type":14,"tag":281,"props":310,"children":312},{"class":283,"line":311},4,[313],{"type":14,"tag":281,"props":314,"children":315},{},[316],{"type":19,"value":317},"npm error `npm ci` can only install packages when your package.json and package-lock.json or npm-shrinkwrap.json are in sync. Please update your lock file with `npm install` before continuing.\n",{"type":14,"tag":281,"props":319,"children":321},{"class":283,"line":320},5,[322],{"type":14,"tag":281,"props":323,"children":324},{},[325],{"type":19,"value":308},{"type":14,"tag":281,"props":327,"children":329},{"class":283,"line":328},6,[330],{"type":14,"tag":281,"props":331,"children":332},{},[333],{"type":19,"value":334},"npm error Missing: @emnapi/core@1.9.2 from lock file\n",{"type":14,"tag":281,"props":336,"children":338},{"class":283,"line":337},7,[339],{"type":14,"tag":281,"props":340,"children":341},{},[342],{"type":19,"value":343},"npm error Missing: @emnapi/runtime@1.9.2 from lock file\n",{"type":14,"tag":281,"props":345,"children":347},{"class":283,"line":346},8,[348],{"type":14,"tag":281,"props":349,"children":350},{},[351],{"type":19,"value":352},"npm error Missing: chokidar@5.0.0 from lock file\n",{"type":14,"tag":281,"props":354,"children":356},{"class":283,"line":355},9,[357],{"type":14,"tag":281,"props":358,"children":359},{},[360],{"type":19,"value":352},{"type":14,"tag":281,"props":362,"children":364},{"class":283,"line":363},10,[365],{"type":14,"tag":281,"props":366,"children":367},{},[368],{"type":19,"value":369},"npm error Missing: @types/node@25.6.0 from lock file\n",{"type":14,"tag":281,"props":371,"children":373},{"class":283,"line":372},11,[374],{"type":14,"tag":281,"props":375,"children":376},{},[377],{"type":19,"value":352},{"type":14,"tag":281,"props":379,"children":381},{"class":283,"line":380},12,[382],{"type":14,"tag":281,"props":383,"children":384},{},[385],{"type":19,"value":369},{"type":14,"tag":281,"props":387,"children":389},{"class":283,"line":388},13,[390],{"type":14,"tag":281,"props":391,"children":392},{},[393],{"type":19,"value":352},{"type":14,"tag":281,"props":395,"children":397},{"class":283,"line":396},14,[398],{"type":14,"tag":281,"props":399,"children":400},{},[401],{"type":19,"value":308},{"type":14,"tag":281,"props":403,"children":405},{"class":283,"line":404},15,[406],{"type":14,"tag":281,"props":407,"children":408},{},[409],{"type":19,"value":410},"npm error Clean install a project\n",{"type":14,"tag":281,"props":412,"children":414},{"class":283,"line":413},16,[415],{"type":14,"tag":281,"props":416,"children":417},{},[418],{"type":19,"value":308},{"type":14,"tag":281,"props":420,"children":422},{"class":283,"line":421},17,[423],{"type":14,"tag":281,"props":424,"children":425},{},[426],{"type":19,"value":427},"npm error Usage:\n",{"type":14,"tag":281,"props":429,"children":431},{"class":283,"line":430},18,[432],{"type":14,"tag":281,"props":433,"children":434},{},[435],{"type":19,"value":436},"npm error npm ci\n",{"type":14,"tag":281,"props":438,"children":440},{"class":283,"line":439},19,[441],{"type":14,"tag":281,"props":442,"children":443},{},[444],{"type":19,"value":308},{"type":14,"tag":281,"props":446,"children":448},{"class":283,"line":447},20,[449],{"type":14,"tag":281,"props":450,"children":451},{},[452],{"type":19,"value":453},"npm error Options:\n",{"type":14,"tag":281,"props":455,"children":457},{"class":283,"line":456},21,[458],{"type":14,"tag":281,"props":459,"children":460},{},[461],{"type":19,"value":462},"npm error [--install-strategy \u003Choisted|nested|shallow|linked>] [--legacy-bundling]\n",{"type":14,"tag":281,"props":464,"children":466},{"class":283,"line":465},22,[467],{"type":14,"tag":281,"props":468,"children":469},{},[470],{"type":19,"value":471},"npm error [--global-style] [--omit \u003Cdev|optional|peer> [--omit \u003Cdev|optional|peer> ...]]\n",{"type":14,"tag":281,"props":473,"children":475},{"class":283,"line":474},23,[476],{"type":14,"tag":281,"props":477,"children":478},{},[479],{"type":19,"value":480},"npm error [--include \u003Cprod|dev|optional|peer> [--include \u003Cprod|dev|optional|peer> ...]]\n",{"type":14,"tag":281,"props":482,"children":484},{"class":283,"line":483},24,[485],{"type":14,"tag":281,"props":486,"children":487},{},[488],{"type":19,"value":489},"npm error [--strict-peer-deps] [--foreground-scripts] [--ignore-scripts] [--no-audit]\n",{"type":14,"tag":281,"props":491,"children":493},{"class":283,"line":492},25,[494],{"type":14,"tag":281,"props":495,"children":496},{},[497],{"type":19,"value":498},"npm error [--no-bin-links] [--no-fund] [--dry-run]\n",{"type":14,"tag":281,"props":500,"children":502},{"class":283,"line":501},26,[503],{"type":14,"tag":281,"props":504,"children":505},{},[506],{"type":19,"value":507},"npm error [-w|--workspace \u003Cworkspace-name> [-w|--workspace \u003Cworkspace-name> ...]]\n",{"type":14,"tag":281,"props":509,"children":511},{"class":283,"line":510},27,[512],{"type":14,"tag":281,"props":513,"children":514},{},[515],{"type":19,"value":516},"npm error [-ws|--workspaces] [--include-workspace-root] [--install-links]\n",{"type":14,"tag":281,"props":518,"children":520},{"class":283,"line":519},28,[521],{"type":14,"tag":281,"props":522,"children":523},{},[524],{"type":19,"value":308},{"type":14,"tag":281,"props":526,"children":528},{"class":283,"line":527},29,[529],{"type":14,"tag":281,"props":530,"children":531},{},[532],{"type":19,"value":533},"npm error aliases: clean-install, ic, install-clean, isntall-clean\n",{"type":14,"tag":281,"props":535,"children":537},{"class":283,"line":536},30,[538],{"type":14,"tag":281,"props":539,"children":540},{},[541],{"type":19,"value":308},{"type":14,"tag":281,"props":543,"children":545},{"class":283,"line":544},31,[546],{"type":14,"tag":281,"props":547,"children":548},{},[549],{"type":19,"value":550},"npm error Run \"npm help ci\" for more info\n",{"type":14,"tag":281,"props":552,"children":554},{"class":283,"line":553},32,[555],{"type":14,"tag":281,"props":556,"children":557},{},[558],{"type":19,"value":559},"npm error A complete log of this run can be found in: C:\\Users\\User\\AppData\\Local\\npm-cache\\_logs\\2026-04-10T05_56_48_557Z-debug-0.log\n",{"type":14,"tag":281,"props":561,"children":563},{"class":283,"line":562},33,[564],{"type":14,"tag":281,"props":565,"children":566},{},[567],{"type":19,"value":568},"##[error]Cmd.exe exited with code '1'.",{"type":14,"tag":15,"props":570,"children":571},{},[572,574,578,580,584],{"type":19,"value":573},"해결 방법은 ",{"type":14,"tag":54,"props":575,"children":576},{},[577],{"type":19,"value":117},{"type":19,"value":579}," 파일을 삭제하고 ",{"type":14,"tag":54,"props":581,"children":582},{},[583],{"type":19,"value":58},{"type":19,"value":585},"을 로컬에서 실행하여 새로운 잠금 파일을 생성한 다음 CI/CD 환경에 푸시하여 다시 실행하는 것입니다.",{"type":14,"tag":69,"props":587,"children":589},{"id":588},"비교-요약",[590],{"type":19,"value":591},"비교 요약",{"type":14,"tag":593,"props":594,"children":595},"table",{},[596,625],{"type":14,"tag":597,"props":598,"children":599},"thead",{},[600],{"type":14,"tag":601,"props":602,"children":603},"tr",{},[604,611,618],{"type":14,"tag":605,"props":606,"children":608},"th",{"align":607},null,[609],{"type":19,"value":610},"특징",{"type":14,"tag":605,"props":612,"children":613},{"align":607},[614],{"type":14,"tag":54,"props":615,"children":616},{},[617],{"type":19,"value":58},{"type":14,"tag":605,"props":619,"children":620},{"align":607},[621],{"type":14,"tag":54,"props":622,"children":623},{},[624],{"type":19,"value":65},{"type":14,"tag":626,"props":627,"children":628},"tbody",{},[629,648,666,684,701],{"type":14,"tag":601,"props":630,"children":631},{},[632,638,643],{"type":14,"tag":633,"props":634,"children":635},"td",{"align":607},[636],{"type":19,"value":637},"주요 사용 사례",{"type":14,"tag":633,"props":639,"children":640},{"align":607},[641],{"type":19,"value":642},"로컬 개발, 패키지 추가",{"type":14,"tag":633,"props":644,"children":645},{"align":607},[646],{"type":19,"value":647},"CI/CD, 프로덕션 빌드, 팀 동기화",{"type":14,"tag":601,"props":649,"children":650},{},[651,656,661],{"type":14,"tag":633,"props":652,"children":653},{"align":607},[654],{"type":19,"value":655},"Lockfile 종속성",{"type":14,"tag":633,"props":657,"children":658},{"align":607},[659],{"type":19,"value":660},"생성 또는 업데이트 가능",{"type":14,"tag":633,"props":662,"children":663},{"align":607},[664],{"type":19,"value":665},"필수, 수정 불가",{"type":14,"tag":601,"props":667,"children":668},{},[669,674,679],{"type":14,"tag":633,"props":670,"children":671},{"align":607},[672],{"type":19,"value":673},"버전 확인",{"type":14,"tag":633,"props":675,"children":676},{"align":607},[677],{"type":19,"value":678},"유연함(SemVer 범위 준수)",{"type":14,"tag":633,"props":680,"children":681},{"align":607},[682],{"type":19,"value":683},"엄격함(Lockfile에 정확한 버전 유지)",{"type":14,"tag":601,"props":685,"children":686},{},[687,691,696],{"type":14,"tag":633,"props":688,"children":689},{"align":607},[690],{"type":19,"value":223},{"type":14,"tag":633,"props":692,"children":693},{"align":607},[694],{"type":19,"value":695},"기존 파일 추가/업데이트",{"type":14,"tag":633,"props":697,"children":698},{"align":607},[699],{"type":19,"value":700},"삭제 후 처음부터 다시 설치",{"type":14,"tag":601,"props":702,"children":703},{},[704,709,714],{"type":14,"tag":633,"props":705,"children":706},{"align":607},[707],{"type":19,"value":708},"재현성",{"type":14,"tag":633,"props":710,"children":711},{"align":607},[712],{"type":19,"value":713},"낮음(버전 변동 가능성 있음)",{"type":14,"tag":633,"props":715,"children":716},{"align":607},[717],{"type":19,"value":718},"높음(확정적인 빌드)",{"type":14,"tag":15,"props":720,"children":721},{},[722,724,733,735,742],{"type":19,"value":723},"자세한 기술적 내용은 npm Docs 포털의 ",{"type":14,"tag":725,"props":726,"children":730},"a",{"href":727,"rel":728},"https://docs.npmjs.com/cli/v11/commands/npm-install",[729],"nofollow",[731],{"type":19,"value":732},"npm-install",{"type":19,"value":734}," 및 ",{"type":14,"tag":725,"props":736,"children":739},{"href":737,"rel":738},"https://docs.npmjs.com/cli/v11/commands/npm-ci",[729],[740],{"type":19,"value":741},"npm-ci",{"type":19,"value":743}," 문서를 참조하세요.",{"type":14,"tag":69,"props":745,"children":747},{"id":746},"개발-종속성-vs-종속성",[748],{"type":19,"value":749},"개발 종속성 vs 종속성",{"type":14,"tag":15,"props":751,"children":752},{},[753,758,760,765],{"type":14,"tag":54,"props":754,"children":755},{},[756],{"type":19,"value":757},"dependencies",{"type":19,"value":759},"는 프로그램을 실행하는 데 필요한 패키지를 의미하며, ",{"type":14,"tag":54,"props":761,"children":762},{},[763],{"type":19,"value":764},"devDependencies",{"type":19,"value":766},"는 개발 또는 빌드 과정에서만 필요한 패키지 또는 도구를 의미합니다.",{"type":14,"tag":15,"props":768,"children":769},{},[770,772,776,778,782],{"type":19,"value":771},"필요에 따라 ",{"type":14,"tag":54,"props":773,"children":774},{},[775],{"type":19,"value":757},{"type":19,"value":777}," 또는 ",{"type":14,"tag":54,"props":779,"children":780},{},[781],{"type":19,"value":764},{"type":19,"value":783},"만 선택적으로 설치할 수 있습니다.",{"type":14,"tag":15,"props":785,"children":786},{},[787,789,793,795,800],{"type":19,"value":788},"아래 명령어는 ",{"type":14,"tag":54,"props":790,"children":791},{},[792],{"type":19,"value":223},{"type":19,"value":794}," 폴더에 있는 ",{"type":14,"tag":54,"props":796,"children":797},{},[798],{"type":19,"value":799},"종속성",{"type":19,"value":801}," 파일만 설치합니다.",{"type":14,"tag":266,"props":803,"children":807},{"className":804,"code":806},[805],"language-undefined","npm install --production\n# 또는\nnpm install --omit=dev\n",[808],{"type":14,"tag":274,"props":809,"children":810},{},[811],{"type":14,"tag":266,"props":812,"children":813},{"__ignoreMap":7},[814,822,830],{"type":14,"tag":281,"props":815,"children":816},{"class":283,"line":284},[817],{"type":14,"tag":281,"props":818,"children":819},{},[820],{"type":19,"value":821},"npm install --production\n",{"type":14,"tag":281,"props":823,"children":824},{"class":283,"line":293},[825],{"type":14,"tag":281,"props":826,"children":827},{},[828],{"type":19,"value":829},"# 또는\n",{"type":14,"tag":281,"props":831,"children":832},{"class":283,"line":302},[833],{"type":14,"tag":281,"props":834,"children":835},{},[836],{"type":19,"value":837},"npm install --omit=dev",{"type":14,"tag":69,"props":839,"children":841},{"id":840},"package-lockjson-vs-shrinkwrapjson",[842,846,848],{"type":14,"tag":54,"props":843,"children":844},{},[845],{"type":19,"value":117},{"type":19,"value":847}," VS ",{"type":14,"tag":54,"props":849,"children":850},{},[851],{"type":19,"value":852},"shrinkwrap.json",{"type":14,"tag":15,"props":854,"children":855},{},[856,858,862,864,868,870,875],{"type":19,"value":857},"Shrinkwrap은 ",{"type":14,"tag":54,"props":859,"children":860},{},[861],{"type":19,"value":117},{"type":19,"value":863},"의 공개 버전입니다. 이 파일은 NPM에 게시되지만, ",{"type":14,"tag":54,"props":865,"children":866},{},[867],{"type":19,"value":117},{"type":19,"value":869}," 원본은 게시되지 않습니다. 따라서 Shrinkwrap을 사용하면 패키지 설치 프로그램이 설치된 종속성과 ",{"type":14,"tag":89,"props":871,"children":872},{},[873],{"type":19,"value":874},"정확히 동일한 버전",{"type":19,"value":876},"의 패키지를 사용하게 됩니다.",{"type":14,"tag":15,"props":878,"children":879},{},[880,890,892,896,898,902],{"type":14,"tag":725,"props":881,"children":884},{"href":882,"rel":883},"https://docs.npmjs.com/cli/v11/commands/npm-shrinkwrap",[729],[885],{"type":14,"tag":54,"props":886,"children":887},{},[888],{"type":19,"value":889},"npm shrinkwrap",{"type":19,"value":891}," 명령어를 실행하면 ",{"type":14,"tag":54,"props":893,"children":894},{},[895],{"type":19,"value":117},{"type":19,"value":897}," 파일을 ",{"type":14,"tag":54,"props":899,"children":900},{},[901],{"type":19,"value":852},{"type":19,"value":903}," 파일로 변환할 수 있습니다.",{"type":14,"tag":15,"props":905,"children":906},{},[907,909,913],{"type":19,"value":908},"또한 NPM 2-4 버전과의 하위 호환성도 제공합니다. 일반적으로 Shrinkwrap을 사용할 필요는 거의 없으며, 기존의 ",{"type":14,"tag":54,"props":910,"children":911},{},[912],{"type":19,"value":117},{"type":19,"value":914},"만으로도 충분합니다.",{"type":14,"tag":15,"props":916,"children":917},{},[918,920,927],{"type":19,"value":919},"예전에 CI 관련 문제를 해결하기 위해 프로젝트에서 ",{"type":14,"tag":725,"props":921,"children":924},{"href":922,"rel":923},"https://github.com/data-miner00/ng-hackernews/blob/angular12-archive/npm-shrinkwrap.json",[729],[925],{"type":19,"value":926},"shrinkwrap",{"type":19,"value":928},"을 사용한 적이 있는데, 더 나은 해결 방법이 있을 거라고 생각합니다.",{"type":14,"tag":69,"props":930,"children":932},{"id":931},"참고",[933],{"type":19,"value":931},{"type":14,"tag":935,"props":936,"children":942},"apa-reference",{":authors":937,"date":938,"source":939,"title":940,"url":941},"[\"Doumbouya, S.\",\"Ward, B\"]","2025, May 20","websites","npm install vs. npm ci","https://www.baeldung.com/ops/npm-install-vs-npm-ci",[],{"type":14,"tag":935,"props":944,"children":949},{":authors":945,"date":946,"source":939,"title":947,"url":948},"[\"Amery, M\"]","2021, March 30","What is the difference between npm-shrinkwrap.json and package-lock.json?","https://stackoverflow.com/questions/44258235/what-is-the-difference-between-npm-shrinkwrap-json-and-package-lock-json",[],{"title":7,"searchDepth":293,"depth":293,"links":951},[952,953,956,957,958,960],{"id":71,"depth":293,"text":74},{"id":132,"depth":293,"text":135,"children":954},[955],{"id":250,"depth":302,"text":253},{"id":588,"depth":293,"text":591},{"id":746,"depth":293,"text":749},{"id":840,"depth":293,"text":959},"package-lock.json VS shrinkwrap.json",{"id":931,"depth":293,"text":931},"markdown","content:ko:articles:general:npm-install.md","content","ko/articles/general/npm-install.md","md"]