如何在我的 yarn.lock 文件中省略一个包?

How do I omit a package from being included in my yarn.lock file?

所以在我的 package.json 中,我有一堆 npm 库,以及一个从 git ssh url 中提取的私人仓库,它需要始终是最新版本。 yarn.lock 添加 git sha 和 yarn 升级等不会获取最新的。

基本上,鉴于此:

"dependencies": {
  "some-package"        : "^0.x.x",
  "some-other-package"  : "*",
  "my-private-git-repo" : "git+ssh://git@bitbucket.org/me/myrepo.git",
  "lastlibrary"         : "^4.0.3"
},

我希望 yarn.lock 或 npm shrinkwrap 忽略 my-private-git-repo

这可能吗?

好吧,我设法通过使用 Perl 从文件本身删除缓存条目来解决这个问题。

鉴于我的 package.json 有这个:

"postinstall": "bash ./scripts/after_install.sh",

我的 after_install.sh 现在有了这个:

perl -0777 -i -pe 's/(?s)"myrepo.*?\n\n//s' ./yarn.lock