Task Runner Explorer ไม่สามารถโหลดงานได้


101

ฉันใช้ VS2015 และ Gulp ฉันเปิด Task Runner Explorer และกดรีเฟรชสิ่งนี้จะปรากฏในบันทึก:

Failed to run "C:\Projects\Test\Gulpfile.js"...
cmd.exe /c gulp --tasks-simple
Error: `libsass` bindings not found in C:\Projects\Test\node_modules\gulp-sass\node_modules\node-sass\vendor\win32-ia32-11\binding.node. Try reinstalling `node-sass`?
    at Object.sass.getBinaryPath (C:\Projects\Test\node_modules\gulp-sass\node_modules\node-sass\lib\extensions.js:148:11)
    at Object.<anonymous> (C:\Projects\Test\node_modules\gulp-sass\node_modules\node-sass\lib\index.js:16:36)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (C:\Projects\Test\node_modules\gulp-sass\index.js:163:21)
    at Module._compile (module.js:456:26)

ดังนั้นฉันจึงลองเรียกใช้cmd.exe /c gulp --tasks-simpleใน PowerShell ในไดเร็กทอรีเดียวกันและทำงานได้ดี - ส่งคืนรายการงาน

ฉันยังสามารถรันงานที่เกี่ยวข้องกับ SASS ได้ดีดังนั้นฉันจึงไม่แน่ใจว่าทำไมจึงบ่นเกี่ยวกับ SASS เมื่อมันถูกเรียกใช้ผ่าน VS แต่ไม่ใช่ในบรรทัดคำสั่งโดยตรง

คำตอบ:


314

ฉันมีปัญหาเดียวกันในการย้ายข้อมูลจาก VS2013 เมื่อเร็ว ๆ นี้

ดังที่ Josh กล่าวไว้ในความคิดเห็นของเขาที่นี่ Visual Studio 2015 มาพร้อมกับ Node เวอร์ชันเก่ากว่า ในกรณีที่คุณไม่ต้องการติดขัดกับ Node เวอร์ชันใดก็ตามที่สร้างไว้ใน Visual Studio คุณสามารถบอกให้ใช้เวอร์ชันที่คุณติดตั้งไว้แล้วได้

  • ไปที่: Tools> Options> Projects and Solutions> External Web Tools
  • จัดลำดับใหม่ให้$(PATH)อยู่ด้านบน$(DevEnvDir)\Extensions\Microsoft\Web Tools\External

นอกจากนี้ยังใช้กับเครื่องมืออื่น ๆ เช่น Grunt, Bower และ Gulp

พบวิธีแก้ปัญหานี้โดย Mads Kristensen ที่นี่

สำหรับ Visual Studio 2017 เราสามารถค้นหาการตั้งค่าได้ที่
Tools > Options > Projects and Solutions > Web Package Management > External Web Tools


ใช่ฉันลงเอยด้วยการทำสิ่งเดียวกัน แต่ลืมกลับมาที่นี่และเพิ่มความคิดเห็นหนึ่งล้านและหนึ่ง ขอบคุณ!
Josh M.

1
มีคนรับวิธีแก้ปัญหานี้ในข้อความแสดงข้อผิดพลาด! # grins #
Iain M Norman

1
ใน VS2017 คือ Tools> Options> Projects and Solutions> Web Package Management> External Web Tools
James Ellis-Jones

5
ใน VS2017 คุณต้องใส่ $ (PATH) ไว้เหนือ $ (VSINSTALLERDIR) \ Web \ External
John Pankowicz

1
ใน VS2017 ฉันต้องย้าย $ (PATH) ด้านบนด้วย \ node_modules \ .bin (โดยทั่วไปฉันต้องย้ายไปที่ด้านบนสุด)
Doug

7

ดูเหมือนว่า gulp-sass จะค้นหา node-sass ในตำแหน่งอื่น นี่คือวิธีแก้ปัญหาชั่วคราว

  1. สร้างไดเร็กทอรีใหม่ชื่อ win32-ia32-11 ภายใน c: \ Projects \ Test \ node_modules \ gulp-sass \ node_modules \ node-sass \ vendor \

  2. ไปที่https://github.com/sass/node-sass-binariesและดาวน์โหลด win32-ia32-11_binding.node

  3. คัดลอกไฟล์ win32-ia32-11_binding.node ไปยัง c: \ Projects \ Test \ node_modules \ gulp-sass \ node_modules \ node-sass \ vendor \ win32-ia32-11 \ และเปลี่ยนชื่อเป็น binding.node

Visual Studio Gulp - ตัวเรียกใช้งาน


1
ฉันเห็น ดูเหมือนว่าฉันได้ติดตั้งโมดูลโหนดทั้งหมดของฉันเวอร์ชัน 64 บิตแล้ว แต่จะต้องทำงานในบริบท 32 บิตเนื่องจากฉันอยู่ใน VS ซึ่งเป็น 32 บิต ฉันคิดว่า. และฉันไม่สามารถหาวิธีบังคับติดตั้งแพ็คเกจ 32 บิตได้ดี รู้สึกแปลกใจที่ฉันไม่พบข้อมูลเพิ่มเติมเกี่ยวกับหัวข้อนี้ดูเหมือนว่าหลาย ๆ คนน่าจะมีปัญหานี้
Josh M.

และฉันก็ไม่พบวิธีที่ดีในการบังคับให้ NPM ติดตั้งแพ็คเกจทั้งหมดในเวอร์ชัน ia32 ฉันพยายามสร้าง.npmrcไฟล์ด้วยตัวเลือกการกำหนดค่าที่เหมาะสม แต่โชคไม่ดี แม้จะทำงานnpm installภายในคอนโซล PS 32 บิต แต่ก็ยังมีการติดตั้งเวอร์ชัน 64 บิต
Josh M.

มันบ้าไปแล้ว. ฉันติดตั้งโหนดเวอร์ชัน 32 บิตแทนจากนั้นติดตั้งแพ็กเกจทั้งหมดของฉันใหม่และในครั้งนี้มีการติดตั้ง node-sass เวอร์ชัน 32 บิต แต่การผูกจะถูกwin32-ia32-14แทนที่win32-ia32-11- ซึ่งด้วยเหตุผลบางประการคือสิ่งที่libsassกำลังมองหา ...
Josh เอ็ม

BTW โซลูชันของคุณใช้งานได้ แต่ฉันเห็นว่าเป็น bandaid - ฉันไม่ต้องการให้นี่เป็นขั้นตอนที่นักพัฒนารายอื่นต้องทำเมื่อพวกเขาเริ่มต้นสิ่งนี้เป็นครั้งแรก!
Josh M.

1
Argh นั่นคือ 0.10.31 32 บิต: nodejs.org/dist/v0.10.31/node-v0.10.31-x86.msi
Josh M.

2

ฉันได้พยายามแก้ปัญหาดังกล่าวข้างต้นทั้งหมด แต่มันไม่ได้ทำงานและผมพบว่าวิธีการแก้ปัญหาอื่นที่นี่

คุณต้องบังคับให้ Visual Studio ทำงานด้วยเวอร์ชัน Node.js ของคุณ:

  1. ไปที่Tools> Optionsใน Visual Studio 2015
  2. ไปที่Projects and Solutions>External Web Tools
  3. เพิ่มเส้นทางต่อไปนี้: C:\Program Files\nodejs


0

node-sass รันสคริปต์การติดตั้งเพื่อดาวน์โหลดไบนารีที่ต้องการ หากไม่มีตัวแปรสภาพแวดล้อมตัวแปร. npmrc หรือชุดอาร์กิวเมนต์ของกระบวนการไบนารีจะถูกกำหนดโดยใช้แพลตฟอร์มกระบวนการสถาปัตยกรรมและเวอร์ชัน Node ABI ปัจจุบัน ดังนั้นหากคุณรันการติดตั้งโหนดในแอปพลิเคชันเดียวแล้วพยายามรัน node-sass ในแอปพลิเคชันที่มีแพลตฟอร์ม / สถาปัตยกรรม / ABI อื่นไบนารีจะไม่ถูกดาวน์โหลด วิธีแก้ไขคือดาวน์โหลดไบนารีด้วยตนเองหรือแก้ไขเวอร์ชันไบนารีโดยใช้ตัวแปรสภาพแวดล้อม (SASS_BINARY_NAME) หรือตัวแปร. npmrc (sass_binary_name)

คุณสามารถดูตรรกะนี้ได้ในฟังก์ชัน getBinaryPath ใน node-sass \ lib \ extensions.js

ดูเพิ่มเติม: Node Sass ไม่พบการเชื่อมโยงสำหรับสภาพแวดล้อมปัจจุบันของคุณ

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