개발일지
[node.js] package.json, package-lock.json 본문
[package.json]
-모든 npm 프로젝트는 루트에 package.json 파일을 포함하고 있다.
-처음 프로젝트 만들 때 npm init 명령어로 package.json 파일을 만든다.
-package.json 파일에는 프로젝트와 관련된 메타데이터를 작성한다. 주고받는 패키지에 대한 상세 설명서라고 할 수 있다.
-협업을 위해 package.json 을 사용해 각자의 컴퓨터에 같은 패키지들을 성치하여 같은 개발환경을 구성할 수 있다.
-그러나 몇가지 조건이 들어맞는 경우 같은 package.json 을 사용하여 npm install 을 하더라도 서로 다른 node_modules 를 생성하는 경우가 발생한다. -> package-lock.json 이 있는 이유
{
"name": "@kwjs/scripts",
"version": "1.0.0",
"description": "scraping scripts dev project",
"private": true,
"author": "KWIC",
"license": "UNLICENSED",
"readmeFilename": "README.md",
"workspaces": [
"packages/*",
"plugins/*"
],
"engines": {
"node": ">=10.0.0"
},
"devDependencies": {
"@types/smartaib": "latest",
"@commitlint/cli": "^12.0.1",
"@commitlint/config-conventional": "^9.1.1",
"@rollup/plugin-babel": "5.1.0",
"@rollup/plugin-commonjs": "14.0.0",
"@rollup/plugin-node-resolve": "^8.4.0",
"commitlint-config-jira": "^1.5.1",
"commitlint-plugin-jira-rules": "^1.5.1",
"cross-env": "7.0.2",
"git-cz": "^4.7.0",
"husky": "^4.2.5",
"read-pkg-up": "7.0.1",
"rollup": "2.23.0",
"rollup-plugin-peer-deps-external": "2.2.3",
"rollup-plugin-terser": "^7.0.2",
"rollup-plugin-uglify": "^6.0.4"
},
"scripts": {
"rollup": "rollup -c",
"commit": "git-cz",
"lint": "eslint ./packages --ext ts --ext tsx"
}
}
https://docs.npmjs.com/cli/v7/configuring-npm/package-json
package.json | npm Docs
Specifics of npm's package.json handling
docs.npmjs.com
[package-lock.json]
-위와같은 이유로 package-lock.json 파일이 필요하다.
- 이 파일은 node_modules 구조나 package.json 파일이 수정되고 생성될 때 당시 의존성에 대한 정확하고 구체적인 정보를 품고 자동으로 생성된다. (npm install 하면 생겨난다고 생각하면 될듯하다.)
-package-lock.json 이 존재할 때 npm install 을 하게되면 package.json 이 아니라 package-lock.json 을 사용해 node_modules 를 생성한다.
- 개발자들이 동일한 node_modules 트리를 생성해서 같은 의존성을 설치할 수 있도록 보장해준다. 그러므로 이 파일도 같이 커밋하자.
https://docs.npmjs.com/cli/v7/configuring-npm/package-lock-json
package-lock.json | npm Docs
A manifestation of the manifest
docs.npmjs.com
'javascript > node.js' 카테고리의 다른 글
[node.js] npm vs. yarn (0) | 2021.11.22 |
---|