【问题标题】:How can I configure my package.json so that certain packages will only install on Windows?如何配置我的 package.json 以使某些软件包仅安装在 Windows 上?
【发布时间】:2016-08-17 06:13:31
【问题描述】:

我正在为我的应用程序使用 "msnodesqlv8": "0.2.3" npm 包在 Windows 上运行一些 MSSQL 脚本,但在 Mac 上,由于此错误,我无法安装所有其他包:

Macbook-Pro jeremy$ npm install
npm ERR! Darwin 15.5.0
npm ERR! argv "/Users/jeremy/.nvm/versions/node/v6.1.0/bin/node" "/Users/jeremy/.nvm/versions/node/v6.1.0/bin/npm" "i"
npm ERR! node v6.1.0
npm ERR! npm  v3.8.6
npm ERR! code EBADPLATFORM

npm ERR! notsup Not compatible with your operating system or architecture: msnodesqlv8@0.2.3
npm ERR! notsup Valid OS:    win32
npm ERR! notsup Valid Arch:  any
npm ERR! notsup Actual OS:   darwin
npm ERR! notsup Actual Arch: x64

npm ERR! Please include the following file with any support request:
npm ERR!     /Users/jeremy/code/lyfeboat/mitchell-sql-feathers/npm-debug.log

有没有办法配置我的 package.json 以便在所有非 Windows 系统上忽略此包?

【问题讨论】:

  • 解决方法当然是从 package.json 中删除该包,保存并运行 npm install。不过,理想情况下,我可以修复我的 package.json,因此不需要这种解决方法。

标签: node.js windows npm package.json


【解决方案1】:

我不确定是否有更好的方法,但我能够使用 package.json 中的 optionalDependencies 属性获得所需的行为。

https://docs.npmjs.com/files/package.json#optionaldependencies

这是我使用的格式:

...
"optionalDependencies": {
  "msnodesqlv8": "0.2.3"
},
...

按预期输出:

Macbook-Pro jeremy$ npm install
...
*installed other packages normally*
...
npm WARN optional Skipping failed optional dependency //msnodesqlv8:
npm WARN notsup Not compatible with your operating system or architecture: msnodesqlv8@0.2.3

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-31
    • 2020-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-21
    • 2021-09-12
    • 2017-12-30
    相关资源
    最近更新 更多