Görev Çalıştırıcı Gezgini görevleri yükleyemiyor


101

VS2015 ve Gulp kullanıyorum. Görev Çalıştırıcı Gezgini'ni açıyorum ve yenile düğmesine basıyorum ve bu, günlükte görünüyor:

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)

Bu yüzden cmd.exe /c gulp --tasks-simpleaynı dizinde PowerShell'de çalıştırmayı deniyorum ve iyi çalışıyor - bir görev listesi döndürüyor.

Ayrıca SASS ile ilgili görevlerimi gayet iyi bir şekilde çalıştırabiliyorum, bu yüzden VS aracılığıyla çalıştırıldığında ancak doğrudan komut satırında çalıştırılmadığında bunun neden SASS'den şikayet ettiğinden emin değilim.

Yanıtlar:


314

Geçenlerde VS2013'ten geçiş yaparken aynı sorunu yaşadım.

Josh yorumunda belirtildiği gibi burada Düğüm eski bir sürümü ile Visual Studio 2015 gemilerde. Visual Studio'da yerleşik olarak bulunan Node sürümüne takılıp kalmak istemiyorsanız, ona zaten yüklediğiniz sürümü kullanmasını söyleyebilirsiniz.

  • Şuraya gidin: Araçlar> Seçenekler> Projeler ve Çözümler> Harici Web Araçları
  • $(PATH)Yukarıda olacak şekilde yeniden sıralayın$(DevEnvDir)\Extensions\Microsoft\Web Tools\External

Bu aynı zamanda Grunt, Bower ve Gulp gibi diğer araçlar için de geçerlidir.

Mads Kristensen tarafından bu çözümü burada buldum .

Visual Studio 2017 için ayarı şu adreste bulabiliriz:
Tools > Options > Projects and Solutions > Web Package Management > External Web Tools


Evet, ben de aynı şeyi yaptım ama buraya geri gelip bir milyon ve bir-inci yorum eklemeyi unuttum. Teşekkürler!
Josh M.

1
Birisi bu çözümü hata mesajına alsın! # grins #
Iain M Norman

1
VS2017'de Araçlar> Seçenekler> Projeler ve Çözümler> Web Paketi Yönetimi> Harici Web Araçları
James Ellis-Jones

5
VS2017'de ayrıca $ (PATH) değerini $ (VSINSTALLERDIR) \ Web \ External
John Pankowicz

1
VS2017'de, ayrıca $ (PATH) 'ı yukarıya taşımak zorunda kaldım. \ Node_modules \ .bin (Temel olarak, onu en üste taşımak zorunda kaldım.)
Doug

7

Görünüşe göre gulp-sass node-sass'ı farklı bir konumda arıyor. İşte geçici bir çözüm.

  1. c: \ Projects \ Test \ node_modules \ gulp-sass \ node_modules \ node-sass \ vendor \ içinde win32-ia32-11 adlı yeni bir dizin oluşturun

  2. Git https://github.com/sass/node-sass-binaries ve indirme Win32-ia32-11_binding.node.

  3. Win32-ia32-11_binding.node dosyasını c: \ Projects \ Test \ node_modules \ gulp-sass \ node_modules \ node-sass \ vendor \ win32-ia32-11 \ konumuna kopyalayın ve binding.node olarak yeniden adlandırın

Visual Studio Gulp - Görev Çalıştırıcı


1
Ah, anlıyorum. Görünüşe göre tüm düğüm modüllerimin 64 bit sürümünü yükledim, ancak 32 bit olan VS'de olduğum için 32 bit bağlamda çalışıyor olmalı. Sanırım. Ve 32 bitlik paketlerin kurulumunu zorlamanın iyi bir yolunu bulamıyorum. Bu konu hakkında daha fazla bilgi bulamadığıma biraz şaşırdım, pek çok insan bu sorunu yaşıyor gibi görünüyor.
Josh M.

Ayrıca NPM'yi tüm paketlerin ia32 sürümünü yüklemeye zorlamanın iyi bir yolunu bulamadım. .npmrcUygun yapılandırma seçeneğiyle bir dosya oluşturmayı denedim , ancak şansım olmadı. npm install32 bitlik bir PS konsolunda çalışırken bile 64 bit sürümleri hala kuruluyor.
Josh M.

Bu çılgınca. Bunun yerine düğümün 32 bit sürümünü yükledim ve ardından tüm paketleri yeniden yükledim ve bu sefer node-sass'ın 32 bit sürümü yüklendi, ancak bağlama bunun win32-ia32-14yerine win32-ia32-11- bazı nedenlerden dolayı aranan şey bu libsass...
Josh M.

Çözümünüz BTW işe yarıyor, ancak bunu bir bandaid olarak görüyorum - bunun, diğer geliştiricilerin bunu ilk kez çalıştırırken atmaları gereken bir adım olmasını istemiyorum!
Josh M.


2

Yukarıdaki tüm çözümleri denedim ama işe yaramadı ve burada başka bir çözüm buldum .

Visual Studio'yu Node.js sürümünüzle çalıştırmaya zorlamanız gerekir:

  1. Visual Studio 2015'te Tools> öğesine gidinOptions
  2. Git Projects and Solutions>External Web Tools
  3. Aşağıdaki yolu ekleyin: C:\Program Files\nodejs


0

node-sass, gerekli ikiliyi indirmek için bir yükleme betiği çalıştırır. Ortam değişkeni, .npmrc değişkenleri veya işlem bağımsız değişkenleri yoksa, ikili, geçerli işlem platformu, mimari ve Node ABI sürümü kullanılarak belirlenir. Bu nedenle, bir uygulamada düğüm yüklemesini çalıştırır ve ardından farklı bir platform / mimari / ABI'ye sahip bir uygulamada düğüm sass çalıştırmayı denerseniz, ikili dosya indirilmeyecektir. Çözüm, ikili sürümü manuel olarak indirmek veya bir ortam değişkeni (SASS_BINARY_NAME) veya bir .npmrc değişkeni (sass_binary_name) kullanarak ikili sürümü düzeltmektir.

Bunun mantığını node-sass \ lib \ extensions.js içindeki getBinaryPath işlevinde görebilirsiniz.

Ayrıca bkz: Node Sass, mevcut ortamınız için bir bağlantı bulamadı

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.