有没有办法知道npm软件包是否具有特定于操作系统的构建要求?

时间:2019-06-20 17:02:58

标签: javascript 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之类的任何模块。

2 个答案:

答案 0 :(得分:0)

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

已经说过,没有强制使用此属性的真正方法,程序包作者可以忽略(或忘记!)以在os文件中指定package.json属性,但仍然编写仅适用于特定操作系统的软件包。

答案 1 :(得分:0)

您可以检查OS的package.json以及是否需要构建软件包(如此处的答案) Node.js / npm - anyway to tell if a package is pure JS or not? 但是总的来说,在主机上本地安装node_modules并将其安装到docker的主要思想上是不合适的,而docker的主要思想是在零配置或相关性为零的任何地方运行同一映像

相关问题