Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何仅在macOS上运行package.json postinstall脚本_Node.js_Macos_Npm_Package.json - Fatal编程技术网

Node.js 如何仅在macOS上运行package.json postinstall脚本

Node.js 如何仅在macOS上运行package.json postinstall脚本,node.js,macos,npm,package.json,Node.js,Macos,Npm,Package.json,我必须在MacOS上执行此postinstall脚本(修复react native maps中的临时错误): Linux或Windows上不需要它,因此如何仅在macOS上执行它?npm软件包似乎完全可以使用package.json执行您想要的操作,即: "scripts": { "foo": "cross-os bar", "bar": { "darwin": "echo 'i will only run on Mac'", "win32": "echo 'i will

我必须在MacOS上执行此
postinstall
脚本(修复react native maps中的临时错误):

Linux或Windows上不需要它,因此如何仅在macOS上执行它?

npm软件包似乎完全可以使用package.json执行您想要的操作,即:

"scripts": {
  "foo": "cross-os bar",
  "bar": {
    "darwin": "echo 'i will only run on Mac'",
    "win32": "echo 'i will only run on Windows'",
    "linux": "echo 'i will only run on Linux'"
  }
}
因此,在您的情况下:

"scripts": {
  "postinstall": "cross-os bar"
}
"cross-os": {
  "bar": {
    "darwin": "echo 'i will only run on Mac'",
    "win32": "echo 'i will only run on Windows'",
    "linux": "echo 'i will only run on Linux'"
  }
}

例如回购协议;命名显然会反映您的用例等。

这是一个很好的解决方案。我会把这个问题留1-2天,以防有人找到一个“普通”的解决方案。不用担心,我想有一个更简单的方法,不添加dep
"scripts": {
  "postinstall": "cross-os bar"
}
"cross-os": {
  "bar": {
    "darwin": "echo 'i will only run on Mac'",
    "win32": "echo 'i will only run on Windows'",
    "linux": "echo 'i will only run on Linux'"
  }
}