我通常在本地开发机(OSX)上运行npm install
命令,以便将所有 Node 模块收集到一个位置,以便我可以浏览它们,在IDE中完成操作等。
但是,我对使用yarn并不陌生,在锁文件中,某些版本的软件包似乎被锁定为特定于我的开发环境,因此当我在 Alpine docker容器中压缩package.json时,它会告诉我诸如此类的信息warning [email protected]: The platform "linux" is incompatible with this module.
我猜这意味着该软件包已锁定到特定于OSX的特定版本或一组依赖项。
这似乎还没有破坏任何功能,但是我担心它可能会失败。关于如何维护 yarn 以进行跨平台开发的任何想法?还是我在这里看到的完全是良性的?
最佳答案
并不是一个真正的答案,但是...
您的示例不是特定于问题的 yarn ,yarn.lock
或npm
和package-lock.json
的问题。 fsevents
包专门用于MacOS文件系统事件。因此,它不能在任何其他平台(例如Linux)上运行。
如果直接使用此程序包,则可能需要考虑跨平台的替换。
如果由于对项目的依赖性而出现此警告,则可能要确保它(及其依赖性)也跨平台。
通常,存在特定于平台的软件包来弥补该平台上不兼容或不存在的功能。只要您(或您的依赖项)以每个平台的方式正确处理此问题,就可以了。这些软件包在package.json
中被列为可选软件包,因为这些软件包在非其设计的平台上可能会失败(因此出现警告)。
有关此的更多信息,Yarn很好地解释了依赖项类型,其中包括可选的依赖项:
https://yarnpkg.com/lang/en/docs/dependency-types/
关于node.js - 维护yarn.lock跨平台?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44862135/