npm-shrinkwrap确保已安装的包也具有发布到注册表时使用的相同版本的依赖项(这些版本在npm-shrinkwrap中声明,然后在安装时使用)。
我目前正在使用纱线(和lerna用于发布),并在一个带有工作区的monorepo项目上工作。现在,我想让monorepo中的每个包都有npm-shrinkwrap提供的相同的保证。
npm-shrinkwrap的一个缺点是它不支持工作区。因此,我不能使用npm-shrinkwrap,因为它只是在根目录下创建的,并不影响在monorepo中安装单个包的方式。
由于我使用的是yarn,我想知道在纱线中是否有一种替代npm-shrinkwrap的方法?
或者一个更好的问题是,使用repo/lerna,我如何锁定发布的版本依赖关系,这样,当我在单回购系统中的包被下载时,它们会与发布点指定的依赖项(和传递依赖项)的确切版本一起下载?
发布于 2022-07-15 20:31:31
我在纱线文档中找到了以下内容(经典纱线1.x)
--如果您现在正在使用
npm-shrinkwrap.json文件,请注意,您可能会得到一组不同的依赖项。纱线不支持npm收缩文件,因为它们中没有足够的信息来支持Yarn的更确定的算法。如果您正在使用收缩包装文件,则可以更容易地将所有在项目中工作的人员转换为同时使用Yarn。只需删除现有的npm-shrinkwrap.json文件并签入新创建的yarn.lock文件即可。
https://stackoverflow.com/questions/71857249
复制相似问题