我通常在我的本地开发机器 (OSX) 上运行 npm install
命令,以便将我的所有 Node 模块收集在一个地方,以便我可以查看它们,在我的 IDE 中完成,等等。
但是,我是使用 yarn 的新手,并且似乎在 lockfile 中,某些版本的包被锁定为特定于我的开发环境,所以当我在 alpine docker 容器中对我的 package.json 进行 yarn 处理时,它会告诉我喜欢的东西
警告 fsevents@1.1.2:平台“linux”与此模块不兼容。
我猜这意味着包被锁定到特定版本或特定于 OSX 的一组依赖项。
这似乎还没有破坏任何功能,但我担心它可能会下线。关于如何维护 yarn 以进行跨平台开发的任何想法?还是我在这里看到的完全是良性的?
最佳答案
不是一个真正的答案,但是......
您的示例不是特定于 yarn、yarn.lock
或 npm
和 package-lock.json
的问题。 fsevents
包专门用于 MacOS 文件系统事件。因此,它不适用于任何其他平台(例如 Linux)。
如果你直接使用这个包,你可能需要考虑一个跨平台的替代品。
如果由于对您的项目的依赖而出现此警告,您可能需要确保它(及其依赖项)也是跨平台的。
通常存在特定于平台的软件包以弥补该平台上不兼容或不存在的功能。只要您(或您的依赖项)以每个平台的方式正确处理此问题,您应该没问题。这些包在 package.json
中列为可选包,因为它们预计会在不是为它们设计的平台上失败(因此出现警告)。
有关这方面的更多信息,Yarn 对包含可选依赖项的依赖类型有很好的解释:
This is useful for dependencies that won’t necessarily work on every machine and you have a fallback plan in case they are not installed...
关于node.js - 维护 yarn.lock 跨平台?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44862135/