国产探花免费观看_亚洲丰满少妇自慰呻吟_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 中的依賴項可能會存在類似于這樣的條目:

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

圖片精選

主站蜘蛛池模板: 邯郸县| 顺平县| 拉萨市| 西和县| 四会市| 米泉市| 泸州市| 大兴区| 临江市| 吉林市| 甘南县| 丹凤县| 灵宝市| 咸宁市| 汶上县| 罗源县| 佳木斯市| 墨江| 彭泽县| 黄平县| 阿坝| 汉寿县| 三明市| 定南县| 台山市| 石林| 台北市| 牙克石市| 饶平县| 无极县| 井陉县| 特克斯县| 正定县| 济源市| 海林市| 南投市| 内乡县| 当阳市| 阜南县| 阜南县| 阿鲁科尔沁旗|