npm8中文文档
为了避免重复处理 node_modules
文件夹,从 v7 开始的 npm 使用 node_modules/.package-lock.json
中存在的 "hidden" 锁定文件。这包含有关树的信息,如果满足以下条件,则用于代替读取整个 node_modules
层次结构:
node_modules
层次结构中。node_modules
层次结构中不存在未在锁定文件中列出的包文件夹。也就是说,隐藏的锁定文件只有在作为最新更新包树的一部分创建时才相关。如果另一个 CLI 以任何方式改变了树,这将被检测到,并且隐藏的锁定文件将被忽略。
请注意,可以手动更改包的内容,使包文件夹的修改时间不受影响。例如,如果您将文件添加到 node_modules/foo/lib/bar.js
,那么 node_modules/foo
上的修改时间将不会反映此更改。如果是手动编辑node_modules
中的文件,一般最好删除node_modules/.package-lock.json
中的文件。
由于较旧的 npm 版本忽略了隐藏的锁定文件,因此它不包含 "normal" 锁定文件中存在的向后兼容性功能。也就是说,它是 lockfileVersion: 3
,而不是 lockfileVersion: 2
。