保持yarn.lock跨平台?

时间:2017-07-01 14:38:53

标签: node.js docker yarnpkg

我通常在我的本地开发机器(OSX)上运行npm install命令,以便在一个地方收集我的所有节点模块,这样我就可以浏览它们,在我的IDE中完成等等。

然而,我是新手使用纱线,并且锁定文件似乎锁定某些版本的软件包以特定于我的开发环境,所以当我在一个高山的docker容器中打包我的package.json时,它告诉

之类的东西

warning fsevents@1.1.2: The platform "linux" is incompatible with this module.

我猜这意味着软件包被锁定到特定于OSX的特定版本或一组依赖项。

这似乎没有打破任何功能,但我担心它可能会失败。关于如何保持纱线跨平台开发的任何想法?或者我在这里看到的完全是良性的?

1 个答案:

答案 0 :(得分:2)

不是真的答案,但......

您的示例不是特定于纱线的问题,yarn.locknpmpackage-lock.json就此而言。 fsevents包专门用于MacOS文件系统事件。因此,它不会在任何其他平台(例如Linux)上工作。

如果您直接使用此软件包,您可能需要考虑跨平台的替代品。

如果由于对项目的依赖性而出现此警告,您可能希望确保它(以及它的依赖项)也是跨平台的。

通常,特定于平台的软件包可用于弥补该平台上不兼容或不存在的功能。只要你(或你的依赖)正确地处理这个问题,以平台的方式,你应该没问题。这些包在package.json中列为可选项,因为它们预计会在不适合的平台上失败(因此会出现警告)。

有关这方面的更多信息,Yarn对依赖类型有一个很好的解释,其中包括可选的依赖项:

  

这对于不一定适用于所有依赖项的依赖项非常有用   机器,你有一个后备计划,以防它们没有安装......

https://yarnpkg.com/lang/en/docs/dependency-types/

相关问题