NPM脚本条件不适用于Windows,但适用于Linux和Mac

时间:2019-02-23 20:18:03

标签: npm npm-scripts

下面的NPM脚本在Linux和MacOS上可以正常运行,但在Windows上则不能运行。 我尝试搜索某种解决方案,但找不到解决方案!

"scripts": {
        "install-dependencies": "if [ ! -d node_modules ]; then npm install && npx npm-install-peers; fi",
},

我得到的错误是:

> if [ -d node_modules ==false ]; then npm install && npx npm-install-peers; fi

-d was unexpected at this time.
npm ERR! code ELIFECYCLE
npm ERR! errno 1

有什么方法可以使它在Windows系统上正常工作吗?

1 个答案:

答案 0 :(得分:1)

Windows命令行在其他系统上不等同于bash。您将需要通过某种方式安装bash(例如git用于Windows的bash),然后在该shell中调用npm。

此软件包也相关,但同样不能解决问题:https://www.npmjs.com/package/cross-env

评论的跟进。 Node.js 已在需要运行此代码的所有位置兼容。因此,我建议在npm script命令中仅使用node运行脚本。

{
  "install-dependencies": " node -e 'process.exit(require(`fs`).existsSync(`node_modules`) ? 0 : 1)' && echo 'succ'"
}