node.js - 维护 yarn.lock 跨平台?

标签 node.js docker yarnpkg

我通常在我的本地开发机器 (OSX) 上运行 npm install 命令,以便将我的所有 Node 模块收集在一个地方,以便我可以查看它们,在我的 IDE 中完成,等等。

但是,我是使用 yarn 的新手,并且似乎在 lockfile 中,某些版本的包被锁定为特定于我的开发环境,所以当我在 alpine docker 容器中对我的 package.json 进行 yarn 处理时,它会告诉我喜欢的东西

警告 fsevents@1.1.2:平台“linux”与此模块不兼容。

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

这似乎还没有破坏任何功能,但我担心它可能会下线。关于如何维护 yarn 以进行跨平台开发的任何想法?还是我在这里看到的完全是良性的?

最佳答案

不是一个真正的答案,但是......

您的示例不是特定于 yarn、yarn.locknpmpackage-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...

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

关于node.js - 维护 yarn.lock 跨平台?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44862135/

相关文章:

node.js - 无法安装 node-sass npm 模块

docker - 从我的本地计算机连接到 docker localhost 端口

bash - 在Google Colab中构建Docker容器: unknown flag -t

linux - Dockerfile 未执行第二阶段

reactjs - 无法创建 react ,中止安装 yarnpkg add --exact react react-dom react-scripts cra-template has failed

javascript - 如何让 cordova 使用 yarn js 而不是 npm 来添加插件

node.js - 测试执行后如何退出Mocha?

javascript - Boilerplate Github存储库将无法运行npm install,ERR!在 '…compile-2.0.0-beta.4.t'附近进行解析时,JSON输入意外结束

javascript - Node.js 上的事件相关递归

javascript - 如何在 npm 包中添加文件夹作为条目?