我通常在我的本地开发机器(OSX)上运行npm install命令,以便在一个地方收集我的所有节点模块,这样我就可以查看它们,在我的IDE中完成等等.
但是,我刚接触使用yarn,并且看起来锁文件中某些版本的软件包被锁定为特定于我的开发环境,所以当我在一个高山的docker容器中打包我的package.json时它会告诉我类似的东西
警告fsevents@1.1.2:平台“linux”与此模块不兼容.
我猜这意味着包被锁定到特定于OSX的特定版本或一组依赖项.
这似乎没有打破任何功能,但我担心它可能会下线.关于如何保持纱线跨平台开发的任何想法?或者我在这里看到的完全是良性的?
您的示例不是特定于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…