วิธีแก้ไข ReferenceError: ไม่ได้กำหนด primordials ในโหนด


364

ฉันได้ติดตั้งโมดูลโหนดโดยการติดตั้ง NPM แล้วฉันพยายามที่จะเขมือบ sass-watch ในพรอมต์คำสั่ง หลังจากนั้นฉันก็ได้รับคำตอบด้านล่าง

[18:18:32] Requiring external module babel-register
fs.js:27
const { Math, Object, Reflect } = primordials;
                                  ^

ReferenceError: primordials is not defined

ลองทำสิ่งนี้ก่อนที่จะเขมือบชม

npm -g install gulp-cli

คำตอบ:


465

ฉันพบข้อผิดพลาดเดียวกัน ฉันสงสัยว่าคุณกำลังใช้โหนด 12 และ gulp 3 ชุดค่าผสมนั้นไม่ทำงาน: https://github.com/gulpjs/gulp/issues/2324

วิธีแก้ปัญหาก่อนหน้านี้จาก Jan. ไม่ทำงาน: https://github.com/gulpjs/gulp/issues/2246

โซลูชัน: อัปเกรดเป็นอึก 4 หรือลดระดับเป็นโหนดก่อนหน้า


20
พบปัญหาเดียวกันกับ Khaos การลดระดับโหนดเป็น v11.15.0 ได้ทำการหลอกลวง
Terje Norderhaug

4
ปัญหาที่คล้ายกันที่นี่โดยใช้webshotแพ็กเกจโหนด ฉันสงสัยว่าพวกเขาต้องอัปเดตบางอย่างก่อนที่ฉันจะสามารถดำเนินการกับโหนด v12 ได้
Jacob Morrison

69
ฉันใช้โหนดv12.1.0และอึกgulp@4.0.2แต่มันใช้งานไม่ได้
Most Wanted

32
ฉันลองกับโหนดv10.xและอึกv3.xจากนั้นเวทมนตร์ก็มีความสุข
kuldipem

12
ฉันขอแนะนำให้ใช้โซลูชัน npm-shrinkwrap.json ที่โพสต์โดย Valentin: stackoverflow.com/a/58394828/2726785แม้ว่านี่จะเป็นวิธีที่ได้รับการยอมรับก็ตาม
Erik Hansen

246

เราพบปัญหาเดียวกันเมื่ออัปเดตโปรเจ็กต์ดั้งเดิมโดยขึ้นอยู่กับgulp@3.9.1Node.js 12

แก้ปัญหาเหล่านี้ช่วยให้คุณสามารถใช้ Node.js 12 gulp@3.9.1โดยเอาชนะกับรุ่นgraceful-fs4.2.3

หากโครงการของคุณไม่ได้ทำงานอย่างแข็งขันและคุณใช้ npm

สร้างnpm-shrinkwrap.jsonไฟล์ที่มีสิ่งนี้:

{
  "dependencies": {
    "graceful-fs": {
      "version": "4.2.3"
    }
  }
}

ยอมรับnpm-shrinkwrap.jsonไฟล์นี้ จากนั้นเรียกใช้งานnpm installซึ่งจะอัปเดตnpm-shrinkwrap.jsonไฟล์

น่าเสียดายที่โซลูชันนี้ใช้งานไม่ได้อีกต่อไปหากคุณnpm installอีกครั้ง ดูวิธีแก้ไขปัญหาอื่น ๆ ด้านล่าง

หากโครงการของคุณอยู่ระหว่างการพัฒนาและคุณใช้ yarn v1

เส้นด้าย v1 สนับสนุนการแก้ไขแพคเกจที่เป็นรุ่นที่กำหนดไว้ คุณต้องเพิ่มresolutionsหัวข้อในpackage.json:

{
  // Your current package.json contents
  "resolutions": {
    "graceful-fs": "4.2.3"
  }
}

ขอบคุณ@jazdสำหรับวิธีนี้ในการแก้ปัญหา

หากโครงการของคุณอยู่ในการพัฒนาที่ใช้งานอยู่และคุณใช้ npm

การใช้npm-force-resolutionsเป็นสคริปต์ติดตั้งล่วงหน้าคุณสามารถรับผลลัพธ์ที่คล้ายกันกับ yarn v1 คุณต้องแก้ไข package.json ด้วยวิธีนี้:

{
  // Your current package.json
  "scripts": {
    // Your current package.json scripts
    "preinstall": "npx npm-force-resolutions"
  },
  "resolutions": {
    "graceful-fs": "4.2.3"
  }
}

npm-force-resolutionsจะแก้ไขpackage-lock.jsonไฟล์เพื่อตั้งgraceful-fsเป็นเวอร์ชั่นที่ต้องการก่อนที่installจะทำ

หากคุณใช้.npmrcไฟล์ที่กำหนดเองในโครงการของคุณและมีพร็อกซีหรือรีจีสตรีที่กำหนดเองคุณต้องเปลี่ยนnpx npm-force-resolutionsเป็นnpx --userconfig .npmrc npm-force-resolutionsเพราะ ณ ตอนนี้npxไม่ได้ใช้.npmrcไฟล์โฟลเดอร์ปัจจุบันตามค่าเริ่มต้น

ต้นกำเนิดของปัญหา

ปัญหานี้เกิดขึ้นจากข้อเท็จจริงที่gulp@3.9.1 ขึ้นอยู่กับโมดูลgraceful-fs@^3.0.0monkeypatches Node.jsfs

สิ่งนี้เคยทำงานกับ Node.js จนถึงเวอร์ชั่น 11.15 (ซึ่งเป็นรุ่นจากสาขาการพัฒนาและไม่ควรใช้ในการผลิต)

graceful-fs@^4.0.0ไม่ใช้ monkeypatch Node.js fsโมดูลอีกต่อไปซึ่งทำให้เข้ากันได้กับ Node.js> 11.15

โปรดทราบว่านี้ไม่ได้เป็นวิธีการแก้ปัญหายืนต้น gulp@^4.0.0แต่มันจะช่วยให้เมื่อคุณไม่ได้มีเวลาที่จะปรับปรุงไป


6
ว้าว - นี่เยี่ยมมาก! ฉันไม่รู้สึกอยากย้อนกลับการติดตั้งโหนดดังนั้นนี่จึงเป็นโซลูชันที่สมบูรณ์แบบ
dgo

@Valentin สิ่งนี้ได้ผลสำหรับฉัน แต่มันทำงานอย่างไร จากสิ่งที่ฉันได้อ่านนอกเหนือจากการเผยแพร่แล้ว npm-shrinkwrap.json ควรทำงานเหมือนกับ package-lock.json ทำไมพวกเขาถึงไม่ทำแบบเดียวกันที่นี่? เหตุใด npm-shrinkwrap.json จึงจำเป็นต้องแก้ไขปัญหานี้
JordRoss

4
วิธีนี้เหมาะสำหรับสถานการณ์เฉพาะ - ควรเป็นคำตอบที่ยอมรับได้จริง ๆ
zerodevx

13
นี่ควรเป็นคำตอบที่ยอมรับ
jtate

1
@Valentin เมื่อฉันเรียกใช้npm installเพื่อสร้างใหม่package-lock.jsonหรือnpm-shrinkwrap.jsonดูเหมือนว่าล้มเหลวในการล็อคการอ้างอิงนี้ หลังจากที่ฉันรันใหม่อีกครั้งnpm install --no-saveสิ่งที่สร้างขึ้นpackage-lock.jsonยังคงระบุ npm เพื่อติดตั้งการพึ่งพาที่หายไป
PuiMan Cheui

95

ใช้คำสั่งต่อไปนี้และติดตั้งโหนด v11.15.0 :

npm install -g n

sudo n 11.15.0

จะแก้ปัญหา

ReferenceError: ไม่ได้กำหนด primordials ในโหนด

อ้างอิงจาก @Terje Norderhaug @Tom Corelis ตอบ


3
ทำงานให้ฉัน! คำตอบที่ยอดเยี่ยม พยายามหาสิ่งนี้มาหลายชั่วโมงแล้ว
GlennFriesen

3
คำตอบที่ยอดเยี่ยม!
user1974753

2
ที่สมบูรณ์แบบ! ทำงานให้ฉัน
ราชา

2
จริงๆคุณช่วยชีวิตฉันไว้ ขอบคุณ
trjade

6
npm install -gn บนเครื่อง (windows 64) ของฉันสร้างข้อผิดพลาด: npm ERR! notsup แพลตฟอร์มที่ไม่รองรับสำหรับ n@6.1.3: ต้องการ {"os": "! win32", "arch": "any"} (ปัจจุบัน: {"os": "win32", "arch": "x64"})
Daryl McCullough

41

แก้ไขได้ใน 1 นาที:

เพียงทำตามขั้นตอนเหล่านี้ ฉันใช้ windows 10 และมันทำงานได้อย่างสมบูรณ์แบบสำหรับฉัน!

  1. ในไดเรกทอรีเดียวกันกับที่คุณpackage.jsonสร้างnpm-shrinkwrap.jsonไฟล์ด้วยเนื้อหาต่อไปนี้:
    {
      "dependencies": {
        "graceful-fs": {
            "version": "4.2.2"
         }
      }
    }
  1. เรียกใช้npm installและไม่ต้องกังวลมันจะอัปเดตnpm-shrinkwrap.jsonด้วยเนื้อหาจำนวนมาก

  2. วิ่งgulpเพื่อเริ่มโครงการ


1
ทำงานเหมือนมีเสน่ห์ภายใต้ win 10 / WSL - ขอบคุณ!
opHASnoNAME

1
คำตอบที่ใช้งานได้อย่างมีเสน่ห์
Adiii

1
ทำงานเหมือนมีเสน่ห์ใน Ubuntu เช่นกัน
Manoj - GT

1
ทำงานได้ดีบน Win 10 pro! ขอบคุณ :)
elhef

1
ที่ดี! ฉันพยายามเรียกใช้ FilterBlend-project แต่ได้รับข้อผิดพลาดนี้ หลังจากอัปเกรดเป็นอึก 4 ฉันได้รับข้อผิดพลาดอื่น (gulp.hasTask ไม่ใช่ฟังก์ชั่น) การสร้างไฟล์นี้สามารถแก้ไขปัญหาได้
Dennis Kassel

27

ใช้คำสั่งต่อไปนี้เพื่อติดตั้งnode v11.15.0และgulp v3.9.1:

npm install -g n

sudo n 11.15.0

npm install gulp@^3.9.1
npm install 
npm rebuild node-sass

จะแก้ปัญหานี้:

ReferenceError: primordials is not defined in node

1
ทำงานให้ฉันต้องทำตามทุกขั้นตอน 👍
Jason

1
โปรดอย่าใช้สาขา NodeJS ที่มีการย่อส่วน (หมายเลขรุ่นคี่ทั้งหมดเช่น 9 และ 11), ใช้ NodeJS 10
Daniel Ruf

ทำงานให้ฉันขอบคุณ
Kapil soni

ทำตามขั้นตอนทั้งหมดอย่างจริงจัง
Ele

คำสั่งแรกล้มเหลวด้วย EBADPLATFORM บน Windows
Ronan Paixão

22

การใช้NVMเพื่อจัดการเวอร์ชันของโหนดที่คุณใช้การรันคำสั่งต่อไปนี้ใช้ได้กับฉัน:

$ cd /to/your/project/
$ nvm install lts/dubnium
$ nvm use lts/dubnium
$ yarn upgrade # or `npm install`

3
ฉันมักจะกลับมาที่นี่เสมอ
หิมะ

3
โปรดอย่าใช้สาขา NodeJS ในการทำให้สั้น (หมายเลขรุ่นคี่ทั้งหมดเช่น 9 และ 11) ใช้ NodeJS 10 และใช้10แทนชื่อรหัส
Daniel Ruf

1
สำหรับ Windows ใช้NVM หน้าต่าง
ลูปา

12

อึก 3.9.1 ไม่ทำงานกับ Node v12.xx, และถ้าคุณอัพเกรดเป็น Gulp 4.0.2, คุณต้องเปลี่ยน gulpfile.js อย่างสมบูรณ์ด้วยไวยากรณ์ใหม่ (Series & Parallels) ดังนั้นทางออกที่ดีที่สุดของคุณคือการลดระดับเป็น Node V 11.xx, 11.15.0 ทำงานได้ดีสำหรับฉัน เพียงแค่ใช้รหัสต่อไปนี้ใน terminal:

nvm install 11.15.0

nvm use 11.15.0 #just in case it didn't automatically select the 11.15.0 as the main node.

nvm uninstall 13.1.0

npm rebuild node-sass

ไชโย!


หลังจากนี้ฉันได้รับข้อผิดพลาด: "/ c / ผู้ใช้ / ผู้ใช้ / AppData / โรมมิ่ง / npm / โหนด: บรรทัดที่ 8: C: \ Users \ User \ AppData \ Roaming \ npm / node_modules / โหนด / bin / โหนด: ไม่มีไฟล์ดังกล่าวหรือ ไดเรกทอรี "
Ivan Topić

11

มีข้อผิดพลาดเดียวกันและในที่สุดก็แก้ไขได้เมื่ออัพเดทแพ็คเกจทั้งหมดแล้วพูดถึงโหนดเอ็นจิ้นรุ่นเดียวกันและรุ่น npmในpackage.jsonเนื่องจากมันอยู่ในระบบการทำงานในท้องถิ่นของฉัน

 "engines": {
    "node": "10.15.3",
    "npm": "6.9.0"
 }

ฉันได้รับข้อผิดพลาดนี้เมื่อปรับใช้กับ heroku

สำหรับการสนับสนุน herokuชำระเงินเพิ่มเติม


6

การลดระดับเป็นโหนดที่เสถียรแก้ไขปัญหานี้ให้ฉันได้ตามที่เกิดขึ้นหลังจากฉันอัพเกรดเป็นโหนด 12

sudo n 10.16.0


3
หากคุณลองทำสิ่งนี้และได้รับข้อผิดพลาด: 'sudo: n: ไม่พบคำสั่ง' ให้แน่ใจว่าได้ติดตั้งnครั้งแรกด้วย: 'npm install -g n'
เกือบPitt

ลองสิ่งนี้บน Windows 10 (64 บิต) และได้รับ: - C: \ react-script-editor> npm install -gn npm ERR! รหัส EBADPLATFORM npm ข้อผิดพลาด! notsup แพลตฟอร์มที่ไม่รองรับสำหรับ n@6.1.0: ต้องการ {"os": "! win32", "arch": "any"} (ปัจจุบัน: {"os": "win32", "arch": "x64"}) npm ข้อผิดพลาด! notsup ระบบปฏิบัติการที่ถูกต้อง:! win32 npm ERR! notsup Arch ที่ถูกต้อง: ใด ๆ npm ERR! notsup ระบบปฏิบัติการจริง: win32 npm ERR! notsup Arch จริง: x64
Nigel Price

6

TL: DR

อึก3.*ไม่ทำงานบนโหนด12.*หรือสูงกว่า คุณต้องปรับลดระดับโหนดหรืออัพเกรดอึก

หากคุณตรงเวลาให้ลดระดับ Node เป็น v11. * หรือต่ำกว่า; หากคุณต้องการฟีเจอร์ที่ใหม่กว่าและมีเวลาที่จะแก้ไขภาระการพึ่งพาที่เสียให้อัพเกรด Gulp เป็น 4 * หรือสูงกว่า!

เป็นคนอื่นได้กล่าวแล้วอึก3.*ไม่ได้รับการสนับสนุนบนโหนด12หรือสูงกว่าเพื่อให้คุณจะต้องปรับลดรุ่นโหนดของคุณไปหรือต่ำกว่าหรืออัพเกรดอึกของคุณเพื่อ11.*4.0

ตัวเลือกที่ดีที่สุดขึ้นอยู่กับว่าคุณมีเวลามากน้อยเพียงใดเนื่องจากการอัพเกรด Gulp นำประโยชน์ของ gulpfiles ที่สะอาดกว่าและการควบคุมที่สร้างขึ้นมาเพื่อให้งานทำงานในซีรีย์หรือขนานแต่ยังต้องพึ่งพาการเขียน gulpfile ของคุณอาจ (อ่าน: อาจจะ - ดูจุดสิ้นสุดของความคิดเห็นนี้) ทำให้เกิดความขัดแย้งกับการอ้างอิงบางอย่าง


ปรับลดโหนด

นี่คือตัวเลือกที่ง่ายที่สุดและเร็วที่สุด โดยเฉพาะอย่างยิ่งถ้าคุณใช้nหรือnvmเนื่องจากสิ่งเหล่านี้ช่วยให้คุณติดตั้งได้อย่างรวดเร็วและสลับระหว่างรุ่นโหนด

การติดตั้งเวอร์ชั่นโหนดบน N

n 10.16.0

การติดตั้งเวอร์ชั่นโหนดบน NVM

nvm install 10.16.0

เมื่อคุณทำสิ่งนี้แล้วคุณอาจต้องสร้างการอ้างอิง NPM ใหม่หรือลบทั้งnode_modulesโฟลเดอร์และpackage-lock.jsonไฟล์ของคุณและติดตั้งการขึ้นต่อใหม่ของคุณ แม้ว่าคุณจะย้อนกลับไปสู่รุ่นโหนดที่มีอยู่แล้ว แต่คุณก็น่าจะใช้ได้


อัพเกรดอึก

ดังกล่าวข้างต้นนี้เป็นงานที่ใช้เวลามาก แต่อาจก่อให้เกิดประโยชน์ในระยะยาว ยกตัวอย่างเช่นโหนด12ได้แนะนำในขณะนี้การสนับสนุนพื้นเมืองสำหรับ ES โมดูล (หลังธงชาติทดลอง) 13และการสนับสนุนเต็มรูปแบบในโหนด

คุณอาจต้องอัพเกรดโหนดเพื่อใช้สิ่งนั้นบังคับให้คุณอัพเกรดอึก หรือคุณอาจต้องการประโยชน์ของการใช้ Gulp 4 เพราะมันมีการควบคุมงานเขียนที่ดีและมีประสิทธิภาพยิ่งขึ้น

มีจำนวนของบทความเกี่ยวกับเรื่องนี้อยู่แล้วดังนั้นผมจะไม่อธิบายรายละเอียดใด ๆ เพิ่มเติมเกี่ยวกับเฉพาะ แต่จะย้ำ - นี้ไม่ได้เป็นงานที่รวดเร็ว ขึ้นอยู่กับขนาดของโครงการของคุณอาจจำเป็นต้องมีการเขียนซ้ำที่โดดเด่นบางอย่างและคุณอาจมีการพึ่งพาที่ผิดพลาด หากคุณมีเวลาไม่พอคุณควรเลือกเพียงแค่ลดระดับ Node อย่างน้อยก็ชั่วคราว


แต่ฉันมี Gulp 4 อยู่แล้ว แต่ก็ยังใช้งานไม่ได้!

หากเช่นฉันคุณกำลังใช้ Gulp 4+ (ฉันใช้ Gulp 4.0.2เดิมที่โหนด 10) และเพิ่งอัปเกรด (ฉันอัปเกรดเป็นNode 13.8.0) คุณกำลังยังคงได้รับปัญหาอาจเป็นเพราะการพึ่งพาอาศัย รุ่นเก่าของอึกและนั่นคือการติดในท่อ

ในกรณีของฉันเป็นการพึ่งพาการใช้อึกgulp-combine-mq 3.9.*การปิดใช้งานใน gulpfile ของฉันทำให้ Gulp สามารถทำงานได้อีกครั้ง

หากสิ่งนี้เกิดขึ้นคุณมีตัวเลือกไม่กี่: คุณสามารถ

  1. ไปโดยไม่มีปลั๊กอินหากไม่จำเป็นจริงๆ
  2. ค้นหาทางเลือก
  3. แก้ไขปลั๊กอิน

หากคุณมีปลั๊กอินหลายตัวที่พึ่งพา Gulp เวอร์ชั่นเก่าโดยเฉพาะถ้าปลั๊กอินเหล่านี้มีความสำคัญต่อแอปพลิเคชั่นของคุณนี่คือที่ซึ่งอาจมีเวลาเพิ่มมากในการอัพเกรด Gulp (ดังนั้นคำเตือนข้างต้น)

หากสิ่งนี้เกิดขึ้นจะเป็นการดีที่สุดที่จะลดระดับโหนดอย่างน้อยก็จนกว่าจะมีการออกแพตช์


4

ข้อผิดพลาดนี้เกิดจาก Node (12) เวอร์ชั่นใหม่และ gulp เวอร์ชั่นเก่า (น้อยกว่า 4)

ไม่แนะนำให้ลดระดับโหนดและการพึ่งพาอื่น ๆ ฉันแก้ไขได้โดยอัปเดตpackage.jsonไฟล์ที่ดึงการอ้างอิงทั้งหมดในเวอร์ชันล่าสุด npm-check-updatesสำหรับเรื่องนี้ผมใช้ เป็นโมดูลที่อัพเดตpackage.jsonด้วยการอ้างอิงทั้งหมดล่าสุด

การอ้างอิง : https://www.npmjs.com/package/npm-check-updates

npm i -g npm-check-updates
ncu -u
npm install

ในกรณีส่วนใหญ่เราจะต้องอัปเดตgulpfile.jsสิ่งต่อไปนี้:

ข้อมูลอ้างอิง : https://fettblog.eu/gulp-4-parallel-and-series/#migration

ก่อน:

gulp.task(
    'sass', function () {
        return gulp.src([sourcePath + '/sass/**/*.scss', "!" + sourcePath + "/sass/**/_*.scss"])

            ....

    }
);

Other config...

gulp.task(
    'watch', function () {
        gulp.watch(sourcePath + '/sass/**/*.scss', ['sass']);
    }
);

หลังจาก:

gulp.task('sass', gulp.series(function(done) {
    return gulp.src([sourcePath + '/sass/**/*.scss', "!" + sourcePath + "/sass/**/_*.scss"])

            ...

    done();
}));

Other config...

gulp.task(
    'watch', function () {
        gulp.watch(sourcePath + '/sass/**/*.scss', gulp.series('sass'));
    }
);

ทางออกที่ดีถ้าคุณไม่มีไฟล์อึกที่ซับซ้อน ในกรณีของฉันฉันต้องปรับสองบรรทัดต่อ gulpfile.js เท่านั้น ขอบคุณสำหรับคำแนะนำการโยกย้ายระยะสั้น!
โทเบียส

3

ฉันได้รับข้อผิดพลาดนี้ใน Windows 10 กลายเป็นโปรไฟล์โรมมิ่งที่เสียหาย

npm ERR! node v12.4.0
npm ERR! npm  v3.3.12

npm ERR! primordials is not defined
npm ERR!
npm ERR! If you need help, you may report this error at:
npm ERR!     <https://github.com/npm/npm/issues>

npm ERR! Please include the following file with any support request:

การลบC:\Users\{user}\AppData\Roaming\npmโฟลเดอร์แก้ไขปัญหาของฉัน


2
สิ่งนี้ทำให้การพึ่งพา npm ทั้งหมดของฉันเสียใจ
30719

3

เพียงทำตามขั้นตอนเหล่านี้ มันทำงานได้อย่างสมบูรณ์แบบด้วยการติดตั้ง npm ที่ทำงานหลายครั้งหรือติดตั้งโมดูลอื่น ๆ หรือแม้แต่การเผยแพร่โครงการไปยังวัตถุโบราณ

ในไดเรกทอรีเดียวกันกับที่คุณมี package.json สร้างไฟล์npm-shrinkwrap.jsonด้วยเนื้อหาดังต่อไปนี้:

{
  "dependencies": {
    "graceful-fs": {
        "version": "4.2.2"
     }
  }
}

เรียกใช้การติดตั้ง npm และไม่ต้องกังวลมันจะอัปเดต npm-shrinkwrap.json ด้วยเนื้อหาจำนวนมาก มากำจัดการอัปเดตนี้ด้วยการอัพเดทตัวเลือกสคริปต์package.json

"scripts": {
    "preshrinkwrap": "git checkout -- npm-shrinkwrap.json",
    "postshrinkwrap": "git checkout -- npm-shrinkwrap.json"
}

ตอนนี้คุณสามารถเรียกใช้การติดตั้ง npm และ npm-shrinkwrap.json ของคุณจะยังคงอยู่และจะทำงานได้ตลอดไป


2

นี่อาจจะมาสาย แต่สำหรับทุกคนที่สนใจที่จะรักษา Node v12 ของพวกเขาในขณะที่ใช้ gulp ^ 4.0 ล่าสุดให้ทำตามขั้นตอนเหล่านี้

อัพเดตอินเตอร์เฟสบรรทัดคำสั่ง (เพื่อความไม่ประมาท) โดยใช้:

npm i gulp-cli -g

เพิ่ม / อัพเดทส่วนgulpภายใต้การอ้างอิงของ package.json ของคุณ

"dependencies": {
  "gulp": "^4.0.0"
}

ลบpackage-lock.jsonไฟล์ของคุณ

ลบnode_modulesโฟลเดอร์ของคุณ

สุดท้ายเรียกใช้npm iเพื่ออัพเกรดและสร้างโฟลเดอร์ node_modules ใหม่และไฟล์ package-lock.json พร้อมพารามิเตอร์ที่ถูกต้องสำหรับ Gulp ^ 4.0

npm i

หมายเหตุ Gulp.js 4.0 แนะนำวิธีการseries()และparallel()วิธีการรวมงานแทนวิธีอาร์เรย์ที่ใช้ใน Gulp 3 ดังนั้นคุณอาจหรืออาจไม่พบข้อผิดพลาดในgulpfile.jsสคริปต์เก่าของคุณ

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการใช้คุณสมบัติใหม่เหล่านี้เว็บไซต์นี้ได้สร้างความยุติธรรมให้กับมันแล้ว: https://www.sitepoint.com/how-to-migrate-to-gulp-4/

( ถ้ามันช่วยได้โปรดปล่อยให้สิ่งที่กระโดดขึ้นมา )


อะไรgulp-cliหา? ฉันทำตามขั้นตอนของคุณและทำให้ทุกอย่างทำงานได้ในตอนแรก แต่แล้วฉันถอนการติดตั้งgulp-cli(เนื่องจากฉันไม่เห็นว่ามันถูกใช้ที่ไหน) และทุกอย่างยังคงทำงานได้ ขอบคุณสำหรับคำตอบเพราะฉันและทำงานอีกครั้งกับโหนดv12.9.1และอึก4.0.2!
MuffinTheMan

ฉันดีใจที่มันช่วย gulp-cliเป็นโปรแกรมอรรถประโยชน์บรรทัดคำสั่ง มั่นใจใช้ติดตั้งที่เหมาะสมของอึกในขณะที่คุณสามารถมองเห็นในการติดตั้งอึกขั้นตอนที่นี่: gulpjs.com/docs/en/getting-started/quick-start
Sab

2

ฉันแก้ไขปัญหานี้ใน Windows 10 โดยการถอนการติดตั้งโหนดจากการเพิ่มหรือลบโปรแกรม -> Node.js

จากนั้นฉันติดตั้งเวอร์ชัน 11.15.0 จากhttps://nodejs.org/download/release/v11.15.0/

เลือก node-v11.15.0-x64.msi ถ้าคุณใช้ windows 64 บิต


2

อึกทำให้มีปัญหากับ Nodejs รุ่น 11 ขึ้นไป ถอนการติดตั้งเวอร์ชันโหนดปัจจุบันของคุณและติดตั้ง v10.15.1 ใหม่ที่นี่คือลิงก์สำหรับเวอร์ชันนั้น มันช่วยฉันได้และมันก็จะแก้ปัญหาของคุณด้วย

https://nodejs.org/download/release/v10.15.1/


2

ฉันประสบปัญหาเดียวกัน สิ่งที่ฉันพยายามและทำงานให้ฉัน:

  1. ตรวจสอบรุ่นของ NODE และ GULP (การรวมกันของโหนด v12 และ gulp ที่น้อยกว่า v4 ไม่ทำงาน)

  2. ฉันลดระดับรุ่น NPM โดย:

    • sudo NPM install -gn
    • sudo n 10.16.0

มันใช้งานได้ดีจากนั้นทำตามคำแนะนำของคอนโซลของคุณ



1

yarnสำหรับผู้ที่กำลังใช้

yarn global add n
n 11.15.0
yarn install # have to install again

โปรดอย่าใช้สาขา NodeJS ที่มีการย่อส่วน (หมายเลขรุ่นคี่ทั้งหมดเช่น 9 และ 11), ใช้ NodeJS 10
Daniel Ruf

0

สำหรับทุกคนที่มีข้อผิดพลาดเดียวกันด้วยเหตุผลเดียวกันใน ADOS CI Build:

คำถามนี้เป็นคำถามแรกที่ฉันพบเมื่อขอความช่วยเหลือ ฉันมีขั้นตอนการสร้าง ADOS CI โดยที่งานเครื่องมือติดตั้งเครื่องมือ Node.js แรกถูกใช้เพื่อติดตั้ง Node จากนั้นใช้ภารกิจ npm เพื่อติดตั้ง gulp (npm install -g gulp) จากนั้นงาน Gulp ต่อไปนี้จะเรียกใช้งานเริ่มต้นจาก gulpfile.js มีบางสิ่งที่อึกอยู่ในนั้น

เมื่อฉันเปลี่ยนเครื่องมือ Node.js เพื่อติดตั้งโหนดล่าสุด 12.x แทนที่จะเป็นโหนดที่เก่ากว่าและเวอร์ชันอึกล่าสุดคือ 4.0.2 ผลลัพธ์เป็นข้อผิดพลาดเดียวกับที่อธิบายไว้ในคำถาม

สิ่งที่ใช้ได้ผลสำหรับฉันในกรณีนี้คือการปรับลดรุ่น node.js เป็นรุ่น 11.x ล่าสุดตามที่แนะนำโดย Alphonse R. Dsouza และ Aymen Yaseen ในกรณีนี้ไม่จำเป็นต้องใช้คำสั่งใด ๆ ที่พวกเขาแนะนำ แต่เพียงแค่ตั้งค่ารุ่นเครื่องมือติดตั้งเครื่องมือ Node.js เป็นรุ่นโหนดล่าสุดจาก 11.x

ป้อนคำอธิบายรูปภาพที่นี่

รุ่นที่แน่นอนของ Node.js ที่ติดตั้งและใช้งานได้คือ 11.15.0 ฉันไม่ต้องปรับลดรุ่นอึก


0

ฉันพบข้อผิดพลาดนี้หลังจากอัปเกรดโหนดเป็นเวอร์ชัน 12 ซึ่งไม่สามารถใช้งานได้กับ Gulp 3.9.1 เกี่ยวกับความจริงที่ว่า gulpfile.js ของฉันไม่ซับซ้อนฉันจึงตัดสินใจอัพเกรดเป็น Gulp 4 โดยใช้บทความนี้มันเป็นไปด้วยดีและง่ายกว่าที่ฉันคิดไว้มาก



0

นี่เป็นเพราะปัญหาความเข้ากันได้ระหว่างnodeและgulpในระบบของคุณ การลดระดับnodeหรืออัพเกรดgulpจะแก้ไขปัญหานี้

sudo npm i -g n
sudo n 11.15.0

ลองลบnode_modulesโฟลเดอร์และpackage-lock.jsonไฟล์และติดตั้งอีกครั้งโดยใช้npm iคำสั่งหากยังไม่ทำงาน


0

สิ่งที่ใช้ได้ผลสำหรับฉันคือใช้ python2 ระหว่างการติดตั้ง npm

> npm install --python=~/venv/bin/python

0

ในขณะที่เรายังได้รับข้อผิดพลาดนี้เมื่อเราใช้แพคเกจ s3 NPM ดังนั้นปัญหาคือกับแพ็คเกจที่สง่างามเราจำเป็นต้องใช้มันปรับปรุง มันทำงานได้ดีใน 4.2.3

ดังนั้นเพียงแค่ดูว่ามันแสดงแพคเกจ NPM ใดในการติดตามบันทึกและอัปเดตพระคุณ -f ตาม 4.2.3


0

ฉันยังได้รับข้อผิดพลาดในโหนด 12/13 ด้วย Gulp 3 ย้ายไปที่โหนด 11 ทำงาน



0

หากคุณกำลังพยายามติดตั้งsemantic-uiและเกิดข้อผิดพลาดต่อไปนี้ให้ลองดาวน์โหลดโหนดเวอร์ชันล่าสุดjs(13.5.0)ด้วยคุณสมบัติล่าสุดจาก Node.js.org ยิ่งไปกว่านั้นลองใช้ความหมายการติดตั้ง NPM คุณควรเพิ่มลิงค์ (ซึ่งคุณสามารถหาได้ จากลิงค์ cdnjsไปยังส่วนหัวของindex.htmlไฟล์ของคุณขอให้โชคดี!


ตัวอย่างรหัสจะเป็นส่วนเสริมที่ดีที่นี่
rhand

-1

ขั้นตอนในการแก้ไขปัญหา: -

ฉันได้แก้ไขปัญหาด้วยขั้นตอนต่อไปนี้: -

  1. กำลังติดตั้ง NVM
  2. ติดตั้ง lts / dubnium โดยใช้คำสั่ง " nvm install lts / dubnium "
  3. ใช้ lts / dubnium โดยใช้คำสั่ง " nvm install lts / dubnium "

ตอนนี้คุณสามารถอึกปรับใช้


1
นี่เป็นคำตอบที่ไม่ถูกต้องของ @kevink
Z4-

-1

ฉันขอแนะนำให้คุณตรวจสอบให้แน่ใจก่อนว่าการติดตั้ง NPMไม่ใช่ปัญหาของคุณ จากนั้นคุณปรับลดรุ่นโหนดและอึกรุ่น ฉันใช้โหนด 10.16.1 และอึก 3.9.1

หากต้องการลดระดับอึกของคุณคุณสามารถลอง

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