π package.json μ νκ³μ
npm
μ μ΄μ©ν΄μ νλ‘μ νΈλ₯Ό μ§ννλ©΄ package.json
μ ν΅ν΄
ν΄λΉ νλ‘μ νΈμμ μ¬μ©νλ μΈλΆ ν¨ν€μ§ μμ‘΄μ±μ κ΄λ¦¬νκ²λ©λλ€.
λ€μμ package.json
μμμ
λλ€.
{
"name": "package json example",
"version": "1.0.0",
"description": "example",
"main": "index.js",
"scripts": {
"start": "webpack serve --mode development",
"build": "webpack --mode production",
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"react": "^17.0.2",
"react-dom": "^17.0.2",
"typescript": "^4.5.5"
},
"devDependencies": {
"@babel/core": "^7.17.8",
"@babel/polyfill": "^7.12.1",
"@babel/preset-env": "^7.16.11",
"@babel/preset-react": "^7.16.7",
"@babel/preset-typescript": "^7.16.7",
"@types/react": "^17.0.42",
"@types/react-dom": "^17.0.14",
"babel-loader": "^8.2.4",
"clean-webpack-plugin": "^4.0.0",
"css-loader": "^6.7.1",
"file-loader": "^6.2.0",
"html-webpack-plugin": "^5.5.0",
"style-loader": "^3.3.1",
"webpack": "^5.70.0",
"webpack-cli": "^4.9.2",
"webpack-dev-server": "^4.7.4"
}
}
νΌμμ νλ‘μ νΈλ₯Ό μ§νν κ²½μ°μλ μκ΄μμ§λ§ κ·λͺ¨κ° ν° νλ‘μ νΈμ κ²½μ°
λ€μμ κ°λ°μλ€μ΄ κ°λ°μ ν¨κ» μ°Έμ¬νκ²λκ³ λͺ¨λ κ°λ°μλ€μ΄ λμΌν κ°λ° νκ²½μ κ°μ§λ κ²μ΄ μ€μν©λλ€.
κ·Έλ°λ° package.json
μ λͺ
μνλ λ²μ μ 보 νκΈ°λ²μ΄ λλ‘λ λ¬Έμ κ° λ μλ μμ΅λλ€.
π‘ semver νκΈ°λ²
package.json
μ semver
νκΈ°λ²μΌλ‘ ν¨ν€μ§ λ²μ μ 보λ₯Ό λͺ
μν©λλ€.
semver
λ λ²μ μ§μ λ°©μμΌλ‘ ^
λ ~
λ₯Ό ν΅ν΄ λ²μ μ 보λ₯Ό λͺ
μν μ μμ΅λλ€.
μμΈν λ΄μ©μ μ μμ λ²μ 2.0.0 λ¬Έμλ₯Ό ν΅ν΄ νμΈν μ μμ΅λλ€.
β οΈ λ¬Έμ κ° λ μ μλ μν©
package.json
λ§ μ‘΄μ¬νλ νλ‘μ νΈκ° μ μ₯μμ μ‘΄μ¬νλ€κ³ κ°μ νκ² μ΅λλ€.
- μ μ
κ°λ°μ
Jessica
μ΄ νλ‘μ νΈλ₯Όclone
ν΄μ΅λλ€. - νλ‘μ νΈλ₯Ό μ΄κ³
npm install
μ μ΄μ©ν΄ μμ‘΄ ν¨ν€μ§λ₯Ό μ€μΉν©λλ€. - μ΄λ² μ€νλ¦°νΈμ κ°λ°ν κΈ°λ₯μΈ
μ¬μ§μμ μμ 볡μ¬νκΈ°
λ₯Ό μΆκ°νκ³ μ μ₯μμpush
ν©λλ€. - ν¨κ» μΌνλ κ°λ°μ
Owen
μ΄ μ μ₯μμμ μ½λλ₯Όpull
νκ³ λΉλλ₯Ό ν΄λ³΄λ.. μλ¬κ° λ°μν©λλ€ π₯
π package-lock.json μ λ±μ₯
μ΄λ¬ν λ¬Έμ μν©μ λ°©μ§νκΈ° μν΄μ npm version 5
λΆν°λ package-lock.json
νμΌλ‘
μ¬μ©νκ³ μλ λͺ¨λ ν¨ν€μ§λ€μ μ νν λ²μ μ 보
λ₯Ό μΆμ ν©λλ€.
μ΄λ₯Ό ν΅ν΄μ λ¨ νλμ μμ‘΄μ± νΈλ¦¬λ₯Ό λ§λ€ μ μκ³ λμΌν package.json
κ³Ό package-lock.json
μ
μ΄μ©νλ λͺ¨λ κ°λ°μλ€μ΄ λμΌν λ²μ μ ν¨ν€μ§λ₯Ό κΈ°λ°μΌλ‘ κ°λ°μ΄ κ°λ₯ν΄μ§λλ€.
π package-lock.json μ ꡬ쑰
{
"name": "tna-partners-web",
"version": "0.0.1",
"lockfileVersion": 2,
"requires": true,
"packages": {
// ...
},
"dependencies": {
// ...
}
}
1οΈβ£ name
package-lock.json
μ ν΄λΉνλ νλ‘μ νΈμ ν¨ν€μ§ μ΄λ¦μ΄λ©° package.json
κ³Ό μΌμΉν©λλ€.
2οΈβ£ version
package-lock.json
μ ν΄λΉ νλ‘μ νΈμ λ²μ μ 보μ΄λ©° package.json
κ³Ό μΌμΉν©λλ€.
3οΈβ£ lockfileVersion
package-lock.json
μ΄ μμ±λ λ ν΄λΉ νμΌμ λΆμ¬λλ 1
μ΄μμ λ²μ μ 보μ
λλ€.
1
μ npm v5 μ v6
μμ μ¬μ©λκ³ 2
λ 1
κ³Ό νμνΈνλλ©° npm v7
μμ μ¬μ©λ©λλ€.
3
μ μ¨κ²¨μ§ lockfile μΈ node_modules/.package-lock.json
μ μ¬μ©λλ©°
npm v6
μ λν νμνΈνμ΄ νμμμ΄μ§λ©΄ npm
μμ μ¬μ©λ μμ μ
λλ€.
4οΈβ£ requires
npm 5.1.0
μ΄νμ μΆκ°λ νλμ΄λ©° νλ‘μ νΈμ νμν ν¨ν€μ§λ€μ μΆμ νλλ‘ μ€μ ν©λλ€.
5οΈβ£ packages
νλ‘μ νΈκ° μ¬μ©νλ ν¨ν€μ§λ€μ λ©ν μ 보λ€μ λ΄μ κ°μ²΄μ λλ€.
version
, resolved
, link
λ± λ€μν μμ±λ€μ΄ μ‘΄μ¬ν©λλ€.
6οΈβ£ dependencies
lockfileVersion: 1
μ μ¬μ©νλ μμ λ²μ npm
μ§μμ μν λ κ±°μ λ°μ΄ν°μ
λλ€.
npm v7
μμ packages
νλκ° μ μλμ΄μμΌλ©΄ μ΄ νλλ₯Ό 무μν©λλ€.
π package-lock.json μ κΌ repository μ μ¬λ¦¬μ!
μμμ μΈκΈνλ―μ΄ package.json
λ§ μ¬μ©νλ©΄ ν΄λΉ νλ‘μ νΈμ κ°λ°μλ€ μ¬μ΄μμ
κ° ν¨ν€μ§λ€μ λ²μ μ λ³΄κ° μΌμΉνμ§ μλ λ¬Έμ κ° λ°μν©λλ€.
λ°λΌμ νλ‘μ νΈλ₯Ό github
μ κ°μ μ μ₯μμ μ¬λ¦΄ λ
λ°λμ κΉλ¨Ήμ§λ§κ³ package-lock.json
λ ν¨κ» push
ν΄μ€μλ€ π
π μ°Έκ³ μλ£
Be aware of the package-lock.json and npm install
NPM5, What is the difference of package-lock.json with package.json?
'π¨βπ» web.dev > node' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[NPM] npm i κ³Ό npm ci β¦ μ°¨μ΄μ μ? (0) | 2022.06.18 |
---|---|
TypeDI λ₯Ό νμ©ν μμ‘΄μ± μ£Όμ (0) | 2022.05.28 |
Node.js μλ²μ Redis μ μ©νκΈ° (1) | 2022.05.28 |
multer λͺ¨λμ νμ©ν μ΄λ―Έμ§ νμΌ μ λ‘λ νν λ¦¬μΌ (2) | 2021.03.05 |
Node.jsμ MySQLλ₯Ό μ΄μ©ν κ²μκΈ μμ±νκΈ° νν λ¦¬μΌ (0) | 2021.03.05 |
π¬ λκΈ