国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

什么時候不能在 Node.js 中使用 Lock Files

2024-05-06 15:37:35
字體:
來源:轉載
供稿:網友

快速摘要

如果你開發像 Web 服務器之類的程序,那么 lock file 是非常有用的。但是如果將庫或 CLI 發布到 npm,則永遠不要發布 lock file。因為如果你使用它,則意味著你和你的用戶可能在使用不同版本的依賴項。

什么是Lock File?

lock file 描述了整個依賴關系樹,它在創建時被解析,包括具有特定版本的嵌套依賴關系。在 npm 名為 package-lock.json ,在 yarn 中名為 yarn.lock。在這兩個npm和yarn它們被放置旁邊你的package.json。
package-lock.json 的內容應該是這樣:

{"name": "lockfile-demo","version": "1.0.0","lockfileVersion": 1,"requires": true,"dependencies": {"ansi-styles": {"version": "3.2.1","resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz","integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==","requires": {"color-convert": "^1.9.0"}},"chalk": {"version": "2.4.2","resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz","integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==","requires": {"ansi-styles": "^3.2.1","escape-string-regexp": "^1.0.5","supports-color": "^5.3.0"}}}}

yarn.lock 的格式不同,但也包含類似的信息:

# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.# yarn lockfile v1ansi-styles@^3.2.1:version "3.2.1"resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==dependencies:color-convert "^1.9.0"chalk@^2.4.2:version "2.4.2"resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==dependencies:ansi-styles "^3.2.1"escape-string-regexp "^1.0.5"supports-color "^5.3.0"

兩者都包含一些重要的信息:

安裝的每個依賴項的實際版本 每個依賴項的依賴項 已解決的軟件包中用校驗和驗證軟件包的完整性

既然 lock file 中已經列出了所有的依賴項,拿為什么還要將它們寫在 package.json 中呢?為什么我們需要兩個文件?

package.json vs. Lock File

package.json 中 dependencies 字段顯示你的項目應該安裝的依賴項,但不顯示這些依賴項的依賴項。依賴項可以指定精確版本或 semver 范圍。對于 semver 范圍,npm 或 yarn 將h會選擇最適合的版本。

這意味著,如果在發布新版本時多次運行 npm install ,有可能會得到相同版本的依賴項。例如用 npm install twilio 安裝 twilio 這樣的依賴項,那么 package.json 中的依賴項可能會存在類似于這樣的條目:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 旅游| 济阳县| 汾西县| 兴城市| 渝北区| 龙里县| 阜新市| 张掖市| 汨罗市| 屏边| 高雄县| 安福县| 湘阴县| 呼玛县| 皮山县| 专栏| 黎川县| 阿瓦提县| 鲁甸县| 迁西县| 长沙县| 饶阳县| 仪征市| 株洲县| 孝感市| 西和县| 崇礼县| 玉门市| 拉孜县| 巴塘县| 江门市| 四川省| 桦甸市| 简阳市| 武定县| 平定县| 拜泉县| 石家庄市| 屯昌县| 工布江达县| 宝鸡市|