当前位置: 首页 > 知识库问答 >
问题:

如何对齐包。json和包锁。依赖项版本不同步时的json?

彭霄
2023-03-14

发生了什么

在Package.json:

"dependencies": {
    ...
    "node-sass": "^4.13.0"
    ...
}

运行npm安装

包内锁。json:

"node-sass": {
    "version": "4.13.1",
    ...
}

我试过的

1.

删除:

  • package-lock.json
  • node_modules目录

然后运行npm安装

2.

删除:

  • package-lock.json
  • node_modules目录

然后运行npm安装--缓存 /temp/empty-cache

3.

删除:

  • package-lock.json
  • node_modules目录

然后运行npm更新

结果:未检测到节点sass可更新

4.

正在运行npm安装节点-sass@4.13.1

这显然可以将它们同步备份,但感觉不对,因为这可能会发生在我不知道的其他依赖项上。

问题

  • 如何让package.json和包锁恢复同步,而无需手动安装4.13.1?
  • [奖励]为什么4.13.1总是被package-lock.json?安装和使用
  • [奖励]为什么node-sass没有被识别为需要更新?

[编辑]

如果有人有一个不涉及手动更新依赖项的答案,他仍然希望得到这个答案

共有2个答案

阎英朗
2023-03-14

这解决了我的问题

npm安装--仅包锁定

狄玉书
2023-03-14

这些依赖项正是您所配置的:

在您的包中。json您定义了^4.13.0^表示您可以安装该模块的最新版本和主要版本4。因此,当您运行npm install时,您将安装与该semver范围匹配的所有依赖项。你可以在塞姆弗更深入。

如果要锁定版本,需要在包中编写节点sass:“4.13.0”。json并重新创建包锁。json

此外,要安装包锁中的内容。json您需要运行npmci。如果运行npm install,您正在更新锁定文件中的依赖项(该文件将被更新)

如何对齐package.json和package-lock.json依赖版本不同步?

重新生成包锁

示例:

npm init --yes
npm init fastify@2.0.0
// now package-lock has 2.0.0
rm -rf node_modules/
npm install
// now package-lock has 2.0.0 still
rm package-lock.json
npm install fastify@2.5.0 --no-save
npm install
// now package-lock has 2.5.0 (the version is loaded by node_modules tree)
rm package-lock.json
rm -rf node_modules/
npm install
// now package-lock has 2.11.0

因此,如果您的文件不同步,请在不使用锁定文件的情况下运行安装

 类似资料:
  • 问题内容: 我正在为Java中的ERP系统进行定制。在我的定制中,我想使用Apache POI 3.10.1。因此,我集成了jars poi-3.10.1-20140818.jar和poi-ooxml-3.10.1-20140818.jar。 但是,这些jar包含几个类,这些类已经包含在ERP系统的核心代码中,但是有所不同。 如果核心ERP类覆盖POI类,则定制将引发运行时异常。如果POI类覆盖核

  • 配置 jar 包需要在 compile 中添加响应依赖。下面的代码添加了 libs 文件夹中的所有 jar 作为依赖。 dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) } android { ... } 注意:dependencies DSL 标签是标准 Gradle API 中的一部分,所以它不属于

  • 有大佬知道如何升级vue-cli项目中的父级依赖包的子级依赖包的版本号吗?安全扫描说一些子级依赖包版本低是安全漏洞的漏洞组件?问题是父级组件的最新版本的子依赖就是很低的版本 升级子依赖包,通过安全检查

  • 我有一个react应用程序,其依赖项已弃用。为了让它工作,我必须将依赖项更新到更新(但稳定)的版本。 根据这个stakoverflow线程,要将package.json中的依赖项更新到最新版本,npm-check-更新是npm的最佳选项。然而,我使用纱线进行包装管理。纱线中是否有相当于npm检查更新。因此,我使用单个包管理器来管理我的依赖关系。

  • 将Android Studio从Canary 3更新到Canary 4后,在构建时抛出以下错误。 Android依赖项“com.Android.support:support-support-v4”的编译类路径(25.2.0)和运行时类路径(26.0.0-beta2)版本不同。您应该通过DependencyResolution手动设置相同的版本。 app-build.gradle Library-

  • 我有两个包作为Android项目中的依赖项:A和B,在中定义如下: 我可以生成项目,但是当尝试运行它时,我收到以下错误: :app:compileDebugSources app:transformClassesWithDexForDebug 意外的顶级异常: com.android.dex。DexException:多个dex文件定义了Lcommon/package/in/both/Depend