【问题标题】:How to solve npm install throwing fsevents warning on non-MAC OS?如何解决 npm install 在非 MAC 操作系统上抛出 fsevents 警告?
【发布时间】:2018-04-06 08:28:27
【问题描述】:

npm install 命令引发以下警告 -

npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.1.2 (node_modules\rea
ct-scripts\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@
1.1.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"}
)
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules\ch
okidar\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@
1.1.2: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"}
)

警告显然导致我们的 Jenkins Job 标记为失败,所以我们只是试图摆脱它。

我已经检查过这个https://stackoverflow.com/a/42938398/351903 但是,与那里提到的不同,我的设置中没有任何 /node_modules/fserrors。另外,我的 package.json 不包含 fserrors。以下是我的 package.json -

{
  "name": "mvc-panel",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "bootstrap": "^3.3.7",
    "jquery": "^3.2.1",
    "material-ui": "^0.18.3",
    "qs": "^6.4.0",
    "react": "^15.5.4",
    "react-alert": "^2.1.2",
    "react-bootstrap-table": "^3.4.1",
    "react-dom": "^15.5.4",
    "react-loader": "^2.4.2",
    "react-router-dom": "^4.1.1",
    "react-tap-event-plugin": "^2.0.1",
    "serve": "^6.0.0"
  },
  "devDependencies": {
    "datatables.net": "^1.10.15",
    "jquery": "^3.2.1",
    "react-scripts": "^1.0.7"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test --env=jsdom",
    "eject": "react-scripts eject"
  }
}

我可以在 node_modules\react-scripts\package.json 的 react-scripts 的 package.json 中看到 fsevents(在我的 package.json 的 devDependencies 下定义) -

{
  "_args": [
    [
      {
        "raw": "react-scripts@^1.0.7",
        "scope": null,
        "escapedName": "react-scripts",
        "name": "react-scripts",
        "rawSpec": "^1.0.7",
        "spec": ">=1.0.7 <2.0.0",
        "type": "range"
      },
      "D:\\Sandeepan\\Payu MVC\\backend codebase\\MVC2.0\\panel\\mvc-panel"
    ]
  ],
  "_from": "react-scripts@>=1.0.7 <2.0.0",
  "_id": "react-scripts@1.0.14",
  "_inCache": true,
  "_location": "/react-scripts",
  "_nodeVersion": "8.5.0",
  "_npmOperationalInternal": {
    "host": "s3://npm-registry-packages",
    "tmp": "tmp/react-scripts-1.0.14.tgz_1506471610836_0.5613740666303784"
  },
  "_npmUser": {
    "name": "timer",
    "email": "timer150@gmail.com"
  },
  "_npmVersion": "5.3.0",
  "_phantomChildren": {
    "asap": "2.0.6",
    "escape-string-regexp": "1.0.5",
    "graceful-fs": "4.1.11",
    "has-ansi": "2.0.0",
    "universalify": "0.1.1"
  },
  "_requested": {
    "raw": "react-scripts@^1.0.7",
    "scope": null,
    "escapedName": "react-scripts",
    "name": "react-scripts",
    "rawSpec": "^1.0.7",
    "spec": ">=1.0.7 <2.0.0",
    "type": "range"
  },
  "_requiredBy": [
    "#DEV:/"
  ],
  "_resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-1.0.14.tgz",
  "_shasum": "70fe76c9beb67b136b953e875bdfe4ad78d410d1",
  "_shrinkwrap": null,
  "_spec": "react-scripts@^1.0.7",
  "_where": "D:\\Sandeepan\\Payu MVC\\backend codebase\\MVC2.0\\panel\\mvc-panel",
  "bin": {
    "react-scripts": "./bin/react-scripts.js"
  },
  "bugs": {
    "url": "https://github.com/facebookincubator/create-react-app/issues"
  },
  "dependencies": {
    "autoprefixer": "7.1.2",
    "babel-core": "6.25.0",
    "babel-eslint": "7.2.3",
    "babel-jest": "20.0.3",
    "babel-loader": "7.1.1",
    "babel-preset-react-app": "^3.0.3",
    "babel-runtime": "6.26.0",
    "case-sensitive-paths-webpack-plugin": "2.1.1",
    "chalk": "1.1.3",
    "css-loader": "0.28.4",
    "dotenv": "4.0.0",
    "eslint": "4.4.1",
    "eslint-config-react-app": "^2.0.1",
    "eslint-loader": "1.9.0",
    "eslint-plugin-flowtype": "2.35.0",
    "eslint-plugin-import": "2.7.0",
    "eslint-plugin-jsx-a11y": "5.1.1",
    "eslint-plugin-react": "7.1.0",
    "extract-text-webpack-plugin": "3.0.0",
    "file-loader": "0.11.2",
    "fs-extra": "3.0.1",
    "fsevents": "1.1.2",
    "html-webpack-plugin": "2.29.0",
    "jest": "20.0.4",
    "object-assign": "4.1.1",
    "postcss-flexbugs-fixes": "3.2.0",
    "postcss-loader": "2.0.6",
    "promise": "8.0.1",
    "react-dev-utils": "^4.1.0",
    "style-loader": "0.18.2",
    "sw-precache-webpack-plugin": "0.11.4",
    "url-loader": "0.5.9",
    "webpack": "3.5.1",
    "webpack-dev-server": "2.8.2",
    "webpack-manifest-plugin": "1.2.1",
    "whatwg-fetch": "2.0.3"
  },
  "description": "Configuration and scripts for Create React App.",
  "devDependencies": {
    "react": "^15.5.4",
    "react-dom": "^15.5.4"
  },
  "directories": {},
  "dist": {
    "integrity": "sha512-+p0q2N2WW7L4WW6uObqN7fYwSQZ9fBI0StpMYl1Ukoz/lCbemf+yW6b8refyhTsGy62GAqxlpyEfVcTE3hJAxg==",
    "shasum": "70fe76c9beb67b136b953e875bdfe4ad78d410d1",
    "tarball": "https://registry.npmjs.org/react-scripts/-/react-scripts-1.0.14.tgz"
  },
  "engines": {
    "node": ">=6"
  },
  "files": [
    "bin",
    "config",
    "scripts",
    "template",
    "utils"
  ],
  "homepage": "https://github.com/facebookincubator/create-react-app#readme",
  "license": "MIT",
  "maintainers": [
    {
      "name": "timer",
      "email": "timer150@gmail.com"
    },
    {
      "name": "fb",
      "email": "opensource+npm@fb.com"
    },
    {
      "name": "gaearon",
      "email": "dan.abramov@gmail.com"
    }
  ],
  "name": "react-scripts",
  "optionalDependencies": {
    "fsevents": "1.1.2"
  },
  "readme": "ERROR: No README data found!",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/facebookincubator/create-react-app.git"
  },
  "version": "1.0.14"
}

更新

我尝试运行 npm install 命令并获取先前命令的退出状态。尽管有警告,但它显示 0 表示成功。因此,詹金斯的工作看起来不应该因此而被卡住。但是,我们仍在尝试找到一种方法来消除此警告,因为它与我们的操作系统无关。

【问题讨论】:

  • 试试这个,它对我有用 stackoverflow.com/a/58178041/4088675 添加 fsevents 作为选项aDependecy
  • 我不明白:解决 fsevents 中的问题是否有问题?图书馆网站声明此审计错误不是图书馆的错误,而是 NPM 的错误。为什么?假设我们有 1000 个仅用于特定操作系统的依赖项,我们将得到 1000 个审计错误!因此,fsevents 的作者建议通过向 NPM 报告错误来修复每个此类问题。如果操作系统的构建使得所有命令错误都由内核处理会怎样? AFAIK,这是一条通往地狱的道路。

标签: node.js jenkins npm-install fsevents


【解决方案1】:

fsevents 在 mac 和其他 linux 系统中的处理方式不同。 Linux 系统忽略 fsevents 而 mac 安装它。如上述错误消息所述,fsevents 是可选的,在安装过程中被跳过。

您可以在 linux 系统中运行npm install --no-optional 命令来避免上述警告。

更多信息

https://github.com/npm/npm/issues/14185

https://github.com/npm/npm/issues/5095

【讨论】:

  • 我只是尝试运行 npm install --no-optional 以避免被警告 fsevents。虽然没有工作:(
  • 不幸的是,由于 npm 中的错误,这会导致其他问题。见github.com/npm/npm/issues/19877#issuecomment-368981968
  • 正如 TigerBear 所说,“--no-optional”是一个非常非常糟糕的主意。忽略警告通常是可以的。你也可以使用npm install -f:github.com/angular/angular/issues/13935
  • 如何直接将其作为可选依赖项删除以不显示警告?
  • 没有像我宣传的那样工作。 Ubuntu 19.04 2020 年 1 月
【解决方案2】:

如果你想隐藏这个警告,你只需要安装 fsevents 作为一个可选的依赖。 只需执行:

npm i fsevents@latest -f --save-optional

..警告将不再是麻烦。

【讨论】:

  • 这不是非 Mac 用户的选项。
  • OP 说:“...试图找到一种方法来消除此警告,因为它与我们的操作系统无关”因此您提出的解决方案不起作用。
  • 你添加了“-f”选项吗?
  • 这解决了我对 Heroku 的部署,该部署由于 fsevents 依赖而失败。太棒了!
  • 谢谢,@JuninhoCruz!它就像一个魅力。您希望您扩展您的答案以提供更多详细信息吗?或者分享相关链接?
【解决方案3】:
npm i -f

我想从this thread 重新发布一些 cmets,您可以在其中阅读有关问题的内容,问题已解决

这正是 Angular 的问题。当前 package.json 需要 fsevent 不是 optionalDependencies 而是 devDependencies。这可能是个问题 对于非 OSX 用户。

有时

即使你从 package.json npm 中删除它,我仍然会失败,因为 另一个模块将其作为对等部。

所以

如果 npm-shrinkwrap.json 仍然存在,请删除它或尝试 npm i -f

【讨论】:

  • npm i -f 是做什么的?
  • 有没有相当于npm i -f的纱线?
  • 根据the doc > -f 或 --force 参数将强制 npm 获取远程资源,即使磁盘上存在本地副本。
  • 似乎最适合破解
【解决方案4】:

package.jsonoptionalDependencies 键一起计数。 NPM on Optional Dependencies.

您可以将fsevents 添加到此对象,如果您发现自己在与MacOS 不同的平台上安装软件包,fsevents 将被 yarnnpm跳过>.

"optionalDependencies": {
  "fsevents": "2.1.2"
},

您会在安装日志中找到如下消息:

info fsevents@1.2.11: The platform "linux" is incompatible with this module.
info "fsevents@1.2.11" is an optional dependency and failed compatibility check. Excluding it from installation.
info fsevents@2.1.2: The platform "linux" is incompatible with this module.
info "fsevents@2.1.2" is an optional dependency and failed compatibility check. Excluding it from installation.

希望对你有帮助!

【讨论】:

  • 如果您不喜欢弄乱 JSON,请运行以下命令:npm i fsevents@latest -f --save-optional,它将为您将此 JSON 添加到文件中。
  • 这确实消除了 Linux 上的警告
【解决方案5】:

我发现了同样的问题,我尝试了上面和 github 中提到的所有解决方案。有些仅在本地存储库中有效,当我使用 travic-CI 或 Pipelines 将我的 PR 推送到远程存储库时会给我同样的错误。最后我使用下面的 npm 命令修复了它。

npm audit fix --force

【讨论】:

  • 问题是不是每个人都有npm-audit,当我尝试用npm install npm-audit安装它时,它彻底失败了......
  • 这对我有用,前提是我还安装了 fsevents 作为可选依赖项,如这里的几个答案所述。
  • npm audit 是来自npm 本身的命令,并且没有名为npm-audit 的包。
  • @DavidWheatley 你是对的,但这是 npm 失败的解决方案。
  • 为我工作。在 Jenkins 构建期间面临这个问题bindings not accessible from jest-haste-map:fsevents
【解决方案6】:

npm v7 不再发生这种情况。您可以更新您的 npm 版本或更新到 node v15 或更高版本,默认情况下安装 npm v7。

【讨论】:

  • 不是真的。它发生在我的节点 12.12.0 上,并且在我将其更新到 v14.17.0 后仍然发生
  • 确保 npm -v 告诉您您的 npm 版本是 7 或更高版本。因为与这两个版本的 node 捆绑的默认 npm 版本低于 7。正如我的回答中所说,您还可以升级到 node 15,它捆绑了 npm 7。
  • 重点是这个问题与node版本无关,就是我上面写的。这解决了问题stackoverflow.com/questions/46929196/… 实际上是对“npm i fsevents@latest -f --save-optional”的评论
  • 你是对的。这与 Node 版本无关。这是由 NPM 版本(即 NPM v7)修复的错误。对于某些人来说,知道更新到 Node v15 也会将 NPM 更新到 v7 可能会有所帮助,这就是我解释这两个选项的原因。您共享的修复是另一个有效答案,也可在此页面中找到。对我来说,只更新 NPM 更容易,因此对其他人来说也是一个不错的选择,这就是为什么我分享了对我有帮助的东西。
  • 好的,我明白了。似乎不止一个解决方案“有效”
【解决方案7】:

虽然我使用的是 MacOS,但我也遇到了同样的问题。问题是一种错误。我通过重复运行命令解决了这个问题,

sudo npm cache clean --force 
sudo npm uninstall 
sudo npm install

有一次它不起作用,但是当我反复清理缓存并在卸载 npm 后重新安装 npm 时,错误消失了。我正在使用 Angular 8,这个问题很常见

【讨论】:

    【解决方案8】:

    我们可以将其添加到 npm 或 yarn config 中,而不是每次都使用 --no-optional

    对于 Yarn,有一个默认的非可选配置,所以我们可以编辑它:

    yarn config set ignore-optional true
    

    对于 npm,没有默认配置集,所以我们可以创建一个:

    npm config set ignore-optional true
    

    【讨论】:

      【解决方案9】:

      这样做:

      npm install --no-optional
      

      欲了解更多信息,请访问:https://github.com/npm/npm/issues/11632

      【讨论】:

        【解决方案10】:

        按照这些步骤-

        1. 进入项目的“package.lock.json”文件
        2. 按“Ctrl+F”(启用搜索)
        3. 输入“达尔文”
        4. 将其重命名为“linux”

        【讨论】:

        • 5.删除node_modules 文件夹 6. 通过运行npm I 重新安装软件包 当您还添加上述步骤时,此方法有效。
        • darwin 在 MacOS 上没有出现在该文件中
        【解决方案11】:

        我正在使用, 角 CLI:8.1.2 节点:12.14.1 操作系统:win32 x64

        奇怪的是,这对我有帮助

        npm cache clean --force
        npm uninstall @angular/cli
        npm install @angular/cli@8.1.2
        

        【讨论】:

        • 那个 npm cache clean --force 最终帮助我解决了不完全一样的问题,而是另一个关于 fsevents 依赖关系的问题。
        【解决方案12】:

        对于最近阅读它的任何人,在 Ubuntu 上做的最简单的事情就是安装最新的 LTS 版本的 nvm、node.js 和 nmp。从node.js 7版本开始,这些问题都已经解决了。

        请参阅本指南: https://computingforgeeks.com/how-to-install-node-js-on-ubuntu-debian/

        【讨论】:

          【解决方案13】:

          我通过删除node_modules 文件夹并运行npm i 解决了这个问题。

          【讨论】:

            【解决方案14】:

            我遇到了同样的错误。就我而言,我使用映射驱动器来编辑另一台计算机的代码,那台计算机正在运行 linux。不确定为什么 gulp-watch 在安装之前依赖操作系统兼容性(我认为它与安全目的有关)。本质上,错误是检查您的操作系统和调用节点模块的操作系统,在我的情况下,这两个操作系统不相同,所以它抛出了错误。从您的错误的外观来看,这与我的相同。

            错误

            Unsupported platform for fsevents@1.1.3: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})
            

            我是如何解决的?

            我直接登录linux电脑运行

            npm install --save-dev <module-name>
            

            然后回到我的编码环境,之后一切都很好。

            希望有帮助!

            【讨论】:

            • 使用这个npm i fsevents@latest -f --save-optional
            • 是的 "npm i fsevents@latest -f --save-optional" 在我的情况下也确实有效。
            【解决方案15】:

            运行 npm install -D vue-loader vue-template-compiler Vue CLI 如果你对手动设置 webpack 不感兴趣,建议使用 Vue CLI 搭建一个项目。 Vue CLI 创建的项目已预先配置,可满足大多数常见的开发需求。

            如果 Vue CLI 的内置配置不适合您的需求,或者您宁愿从头开始创建自己的 webpack 配置,请按照本指南进行操作。

            #手动设置 #安装 除非您是使用自己的分叉版本的 Vue 模板编译器的高级用户,否则您应该一起安装 vue-loader 和 vue-template-compiler:

            【讨论】:

              【解决方案16】:

              检查您的节点版本并检查package.json 是否是使用不同版本的节点生成的。

              我从 Linux 下载了从 Mac 创建的存储库,并在尝试 npm install 时遇到此错误。我使用的是节点v14.15.0,当我切换到v16.13.0时,错误消失了。

              【讨论】:

                【解决方案17】:

                是的,它在使用命令npm install --no-optional时有效
                使用环境:

                • iTerm2
                • macos 登录到我的 vm ubuntu16 LTS。

                【讨论】:

                  【解决方案18】:

                  我遇到了这个错误,Linux 系统(Ubuntu),这可能在你运行时发生:

                  npm 安装

                  1) 如果项目不在您的本地磁盘/计算机中,请将其复制到您的计算机并重试。所以你获得了访问文件夹的权限(只要确保你有访问权限)。

                  2) 如果您仍然收到一些警告或错误,请运行:

                  npm 审计修复

                  这将解决您的依赖项中的漏洞,并可以通过提供易于运行的 npm 命令和建议来帮助您修复漏洞以进行进一步的故障排除。

                  希望对你有帮助!

                  【讨论】:

                    【解决方案19】:

                    切换到 PNPM:https://pnpm.js.org/

                    fsevents 警告消失了(在 Linux 上)。

                    即使是最新的纱线 (2.x) 也会显示警告。

                    【讨论】:

                    • 这里没有警告可能是由于 pnpm 缓存依赖项的方式。您可能仍然有一次警告,但后续使用将只是创建符号链接,跳过发出警告的安装。如果您要清除 pnpm 缓存,您可能会再次收到警告。无论哪种方式,这都是“通过杀死患者来治愈疾病”的选择,而不是解决方案。
                    • @erich2k8 你错了。我清除了 pnpm 缓存,在 pnpm 安装过程中没有出现警告。
                    【解决方案20】:

                    如果有人在 ionic cordova install 中遇到此错误。只需在您的 cmd 中使用此代码 npm install --no-optional。 然后运行这段代码npm install -g ionic@latest cordova

                    【讨论】:

                      【解决方案21】:

                      使用sudo npm install -g appium

                      【讨论】:

                        猜你喜欢
                        • 1970-01-01
                        • 1970-01-01
                        • 2019-04-05
                        • 1970-01-01
                        • 1970-01-01
                        • 1970-01-01
                        • 2021-05-18
                        • 1970-01-01
                        • 2015-02-25
                        相关资源
                        最近更新 更多