gpt4 book ai didi

node.js - 有没有人有一个很好的解决方案来将模块包装器与父项目分离?

转载 作者:搜寻专家 更新时间:2023-10-31 23:54:58 24 4
gpt4 key购买 nike

我一直在使用 gulpjs最近很多,我发现自己手动将一堆包装器库与其父项目分离,因为我不想依赖一些琐碎的项目来使父项目保持最新。

例如,gulp-jadejade 1.1 列为依赖项,但我想使用 1.3,所以我手动打开它的 package.json,删除 jade,并将 jade 从其 node_modules 目录中删除,以便它在我的项目 node_modules 目录中使用 1.3 版本。但是现在,如果我更新 gulp-jade,就会遇到恼人的 git 冲突...

所以我想知道是否有人对此有解决方案,不需要每次更新项目时都手动更新项目...

最佳答案

我会说这主要是 gulp-jade 的问题. NPM 中的 Node 包强调遵守 semver 规范很关键。鉴于此,gulp-jade应该使用 ^1.1package.json而不是 ~1.1因为只要 jade 就绝对安全遵循语义版本控制。

  • ^1.1表示 >= 1.1.0< 2.0.0
  • ~1.1表示 >= 1.1.0< 1.2.0

在这种情况下,我会在 gulp-jade 中提交更改支持版本范围的 PR .

然后,为了更具体地解决您的问题,通过该更改,您可以自由安装 1.3作为项目的依赖项,与 gulp-jade 一起, NPM 不会费心安装 1.1 gulp-jade 的版本特别是因为您安装了 1.3 已经满足了依赖性.

黑客解决方案

您始终可以将安装后脚本添加到您的 package.json ,例如将其合并到:

{
"scripts": {
"postinstall": "rm ./node_modules/gulp-jade/node_modules/jade"
}
}

删除 jade来自 gulp-jade 的模块当你运行 npm install .这不是最好的,因为您将重新安装 1.1然后在每次安装时立即删除它,但这可能是最简单的解决方案。当node正在解决 gulp-jade的依赖项,它不查看版本,它只会在父模块的文件夹中查找 jade包。

关于node.js - 有没有人有一个很好的解决方案来将模块包装器与父项目分离?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22419190/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com