首页 > 解决方案 > 有什么方法可以知道 npm 包是否具有特定于操作系统的构建要求?

问题描述

一些节点模块有特定的平台安装要求。比如node-sass:https ://www.npmjs.com/package/node-sass#install不能在mac上搭建,在windows或者linux上使用。它可以在 Windows 上运行,但前提是您在 Windows 上构建它。由于它的 node-gyp 依赖性,它必须专门构建在您打算运行它的平台上。

而 lodash 没有这样的复杂性。

除了阅读每个包/手动试验的文档之外,是否有任何(理想情况下,自动或编程)方法可以知道哪些包像 node-sass 一样工作,哪些像 lodash 一样工作?

我想将我的 node_modules 目录挂载到 docker 容器,但我想在主机上本地安装我的节点模块。这不适用于任何模块,例如 node-sass。

标签: javascriptnpm

解决方案


package.json文件使用该os属性指定软件包具有的任何操作系统限制,例如"os" : [ "darwin", "linux" ],甚至"os" : [ "!win32" ].

话虽如此,没有真正的方法来强制使用这个属性,包作者可以省略(或忘记!)os在文件中指定属性,package.json但仍然编写一个只能在特定操作系统上运行的包。


推荐阅读