วิธีแก้ npm ติดตั้งการโยนคำเตือน fsevents บนระบบปฏิบัติการที่ไม่ใช่ MAC


120

คำเตือนต่อไปนี้กำลังถูกส่งไปตาม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"
  }
}

ฉันสามารถดู fsevents ใน package.json ของ react-scripts (ซึ่งกำหนดภายใต้ devDependencies ของ package.json ของฉัน) ในnode_modules\react-scripts\package.json-

{
  "_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 และรับสถานะการออกของคำสั่งก่อนหน้านี้ มันแสดงความหมายถึงความสำเร็จแม้จะมีคำเตือน ดังนั้นดูเหมือนว่างานของเจนกินส์จะไม่ติดขัดเนื่องจากเหตุนี้ อย่างไรก็ตามเรายังคงพยายามหาวิธีกำจัดคำเตือนนี้เนื่องจากไม่เกี่ยวข้องกับระบบปฏิบัติการของเรา


ลองสิ่งนี้มันใช้งานได้สำหรับฉันstackoverflow.com/a/58178041/4088675 การเพิ่ม fsevents เป็นตัวเลือก aDependecy
Oluwaloni Richard

คำตอบ:


75

fseventsได้รับการจัดการที่แตกต่างกันใน mac และระบบ linux อื่น ๆ ระบบ Linux ละเว้นfseventsในขณะที่ Mac ติดตั้ง เนื่องจากข้อความแสดงข้อผิดพลาดข้างต้นระบุว่าfseventsเป็นทางเลือกและถูกข้ามไปในกระบวนการติดตั้ง

คุณสามารถเรียกใช้npm install --no-optionalคำสั่งในระบบ linux เพื่อหลีกเลี่ยงคำเตือนข้างต้น

ข้อมูลเพิ่มเติม

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

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


17
ฉันเพิ่งพยายามเรียกใช้การติดตั้ง npm - ไม่จำเป็นสำหรับ avoir ที่ถูกเตือนสำหรับ fsevents ไม่ได้ผล :(
Deunz

1
น่าเสียดายที่สิ่งนี้นำไปสู่ปัญหาอื่น ๆ เนื่องจากข้อบกพร่องใน npm ดูgithub.com/npm/npm/issues/19877#issuecomment-368981968
TigerBear

3
ดังที่ TigerBear กล่าวว่า "- ไม่มีทางเลือก" เป็นความคิดที่แย่มากจริงๆ โดยปกติจะไม่สนใจคำเตือน คุณยังสามารถใช้npm install -f: github.com/angular/angular/issues/13935
FoggyDay

5
ฉันจะลบมันออกเป็นตัวเลือกอ้างอิงเพื่อไม่ให้แสดงคำเตือนได้อย่างไร
Aaron Franke

ไม่ได้ผลตามที่โฆษณาไว้สำหรับฉัน Ubuntu 19.04 ม.ค. 2020
Michael Durrant

43

หากคุณต้องการซ่อนคำเตือนนี้คุณเพียงแค่ติดตั้ง fsevents เป็นการอ้างอิงที่เป็นทางเลือก เพียงดำเนินการ:

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

.. และคำเตือนจะไม่กวนใจอีกต่อไป


11
นี่ไม่ใช่ตัวเลือกสำหรับผู้ใช้ที่ไม่ใช่ Mac
Matthew

3
ล้มเหลวที่ไม่ใช่ mac
naringas

2
OP กล่าวว่า: "... พยายามหาวิธีกำจัดคำเตือนนี้เนื่องจากไม่เกี่ยวข้องกับระบบปฏิบัติการของเรา" ดังนั้นโซลูชันที่คุณเสนอจึงไม่ทำงาน
matthiku

1
คุณได้เพิ่มตัวเลือก "-f" แล้วหรือยัง
Juninho Cruz

38
npm i -f

ฉันต้องการโพสต์ความคิดเห็นบางส่วนจากชุดข้อความนี้ซึ่งคุณสามารถอ่านปัญหาและปัญหาได้รับการแก้ไขแล้ว

นี่เป็นปัญหาของ Angular package.json ปัจจุบันต้องการ fsevent ไม่ใช่ optionalDependencies แต่เป็น devDependencies นี่อาจเป็นปัญหาสำหรับผู้ใช้ที่ไม่ใช่ OSX

บางครั้ง

แม้ว่าคุณจะลบออกจาก package.json npm ฉันก็ยังล้มเหลวเนื่องจากโมดูลอื่นมีมันเป็น peer dep

ดังนั้น

ถ้า npm-shrinkwrap.json ยังอยู่โปรดลบออกหรือลอง npm i -f


4
อะไรnpm i -fทำอย่างไร
Super Jade

3
มีไหมพรมเทียบเท่าnpm i -fไหม
Super Jade

ตาม อาร์กิวเมนต์doc > The -f หรือ --force จะบังคับให้ npm ดึงทรัพยากรระยะไกลแม้ว่าจะมีสำเนาโลคัลอยู่บนดิสก์ก็ตาม
Pierre de LESPINAY

15

package.jsonนับด้วยoptionalDependenciesคีย์ NPM ในการพึ่งพาเพิ่มเติม

คุณสามารถเพิ่มลงfseventsในวัตถุนี้และหากคุณพบว่าตัวเองติดตั้งแพ็คเกจในแพลตฟอร์มอื่นที่ไม่ใช่ MacOS fseventsจะถูกข้ามด้วยเส้นด้ายหรือ NPM

"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.

หวังว่าจะช่วยได้!


2
หากคุณไม่ชอบยุ่งกับ JSON ให้รันคำสั่งนี้: npm i fsevents @ latest -f --save-optional ซึ่งจะเพิ่ม JSON นี้ลงในไฟล์ให้คุณ
Erich Wehrmann

นี่เป็นการลบคำเตือนบน Linux
Pierre de LESPINAY

9

ฉันพบปัญหาเดียวกันและฉันลองวิธีแก้ปัญหาทั้งหมดที่กล่าวถึงข้างต้นและใน github บางอย่างใช้งานได้เฉพาะในที่เก็บในเครื่องเมื่อฉันพุช PR ของฉันในที่เก็บระยะไกลด้วย travic-CI หรือไปป์ไลน์จะทำให้ฉันมีข้อผิดพลาดเดียวกันกลับมา ในที่สุดฉันก็แก้ไขโดยใช้คำสั่ง npm ด้านล่าง

npm audit fix --force


ปัญหาคือไม่ใช่ทุกคนที่มีnpm-auditและเมื่อฉันพยายามติดตั้งnpm install npm-auditมันล้มเหลวอย่างมาก ...
Serj Sagan

สิ่งนี้ใช้ได้ผลสำหรับฉันหากฉันยังติดตั้ง fsevents เป็นการพึ่งพาที่เป็นทางเลือกตามที่อธิบายไว้ในคำตอบหลายข้อที่นี่
Safa Alai

4

ฉันมีปัญหาเดียวกันแม้ว่าฉันจะใช้ MacOS ปัญหาคือข้อบกพร่อง ฉันแก้ไขปัญหานี้โดยเรียกใช้คำสั่งซ้ำ ๆ

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

ครั้งหนึ่งมันใช้ไม่ได้ แต่เมื่อฉันล้างแคชซ้ำ ๆ และหลังจากถอนการติดตั้ง npm ติดตั้ง npm ใหม่ข้อผิดพลาดก็ดับลง ฉันใช้ Angular 8 และปัญหานี้เป็นเรื่องปกติ



2

ฉันใช้ Angular CLI: 8.1.2 โหนด: 12.14.1 OS: win32 x64

น่าแปลกที่สิ่งนี้ช่วยฉันได้

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

1
แคช npm นั้นสะอาด --force ช่วยฉันได้ไม่เหมือนกันทุกประการ แต่อีกเรื่องเกี่ยวกับการอ้างอิง fsevents
josh

2

แทนที่จะใช้ --no-optionalทุกครั้งเราสามารถเพิ่มลงใน npm หรือ yarn config ได้

สำหรับ Yarn มีการกำหนดค่าเริ่มต้นที่ไม่มีตัวเลือกดังนั้นเราสามารถแก้ไขได้:

yarn config set ignore-optional true

สำหรับ npm ไม่มีชุด config เริ่มต้นดังนั้นเราสามารถสร้างได้:

npm config set ignore-optional true

0

ฉันได้รับข้อผิดพลาดเดียวกัน ในกรณีของฉันฉันใช้ไดรฟ์ที่แมปเพื่อแก้ไขโค้ดจากคอมพิวเตอร์เครื่องที่สองคอมพิวเตอร์เครื่องนั้นกำลังใช้งาน 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
RAVI BANGKIT NUR ZIKRILLAH

0

เปลี่ยนเป็น PNPM: https://pnpm.js.org/

fseventsคำเตือนจะหายไป (บน Linux)

แม้แต่เส้นด้ายล่าสุด (2.x) ก็แสดงคำเตือน


1
การขาดคำเตือนที่นี่อาจเกิดจากวิธีที่ pnpm แคชการอ้างอิง คุณอาจยังคงได้รับคำเตือนเพียงครั้งเดียว แต่การใช้งานในภายหลังจะเป็นการสร้าง symlink โดยข้ามการติดตั้งที่ออกคำเตือน หากคุณต้องการล้างแคช pnpm ของคุณคุณอาจมีคำเตือนอีกครั้ง ไม่ว่าจะด้วยวิธีใดก็ตามนี่คือตัวเลือก "รักษาโรคโดยการฆ่าผู้ป่วย" ไม่ใช่วิธีแก้ปัญหา
erich2k8

@ erich2k8 คุณไม่ถูกต้อง ฉันล้างแคช pnpm และคำเตือนไม่ปรากฏขึ้นระหว่างการติดตั้ง pnpm
KTCO

-1

ใช่มันทำงานเมื่อมีคำสั่งnpm install --no-optional
โดยใช้สภาพแวดล้อม:

  • iTerm2
  • macosเข้าสู่ระบบ vm ubuntu16 LTS ของฉัน

-1

ฉันได้รับข้อผิดพลาดนี้ระบบ Linux (Ubuntu) และสิ่งนี้อาจเกิดขึ้นเมื่อคุณเรียกใช้:

npm ติดตั้ง

1) หากไม่มีโปรเจ็กต์ในโลคัลดิสก์ / คอมพิวเตอร์ของคุณให้คัดลอกลงในคอมพิวเตอร์ของคุณแล้วลองอีกครั้ง ดังนั้นคุณจึงได้รับสิทธิ์ในการเข้าถึงโฟลเดอร์ (ตรวจสอบให้แน่ใจว่าคุณมีสิทธิ์เข้าถึง)

2) หากคุณยังคงได้รับคำเตือนหรือข้อผิดพลาดให้เรียกใช้:

แก้ไขการตรวจสอบ npm

วิธีนี้จะแก้ไขช่องโหว่ในการอ้างอิงของคุณและสามารถช่วยคุณแก้ไขช่องโหว่โดยการให้คำสั่ง npm และคำแนะนำสำหรับการแก้ไขปัญหาเพิ่มเติม

หวังว่าจะช่วยได้!


-2

หากใครได้รับข้อผิดพลาดนี้สำหรับการติดตั้ง ionic cordova เพียงใช้รหัสนี้npm install --no-optionalใน cmd ของคุณ จากนั้นเรียกใช้รหัสนี้npm install -g ionic@latest cordova


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.