有没有办法在npm包中指定特定于操作系统的依赖项.json文件?

例如,如果用户正在运行Linux,我只想将"dbus"(https://npmjs.org/package/dbus)作为模块的依赖项安装.我会对Mac和Windows有不同的依赖.

推荐答案

根据你的设置,有一种可能的好方法.

npm包.json支持os键,

还有optionalDependencies

  • os可用于指定模块可安装在哪个操作系统上.
  • optionalDependencies是模块依赖项,如果无法安装,npm将跳过它们并继续安装.

通过这种方式,你可以让你的模块对每个操作系统都有一个可选的依赖项,并且只有一个有效的操作系统才会被加载/安装^^

EDIT:正如@Sebastien在下面提到的,this approach is dangerous.

Node.js相关问答推荐

如何使用聚合管道交换键值对

Puppeteer 的 BrowserFetcher 发生了什么?

仅在一次查询中 MongoDB 上最近的一对位置

如何在Node.js的telegraf.js命令中添加参数?

数据未被中间件解析

如何在套接字对象中存储或添加数据?

为什么 nginx 不将我的 react index.html 作为后备服务

错误:0308010C:try 通过 Github 推送部署到 firebase 托管时出现数字

Fly.io 启动问题:无法从源获取图像或构建错误:构建错误:连接期间出错:发布...

MongoDB 根据使用聚合的条件从嵌套数组中删除对象

使用 .pipe(res) 向客户端发送音频不允许您搜索?

配额超出了每分钟的 Sheets API 写入请求数. node .js

node_modules 中 .bin 文件夹的用途是什么?

bash:npm:找不到命令?

来自 Node-aws 的 Dynamo Local:所有操作都失败无法对不存在的表执行操作

eslint - vscode 的可选链接错误

用一级 try ... catch 捕获 JavaScript Promise 中的错误

JavaScript 异步编程:promise 与生成器

Nodejs将字符串转换为UTF-8

react-native run-android 无法识别