node-sass говорит, что у него есть привязки, и они в порядке, но не используют их - PullRequest
0 голосов
/ 24 октября 2018

При запуске docker-compose я получил следующий вывод

Loading "sass.js" tasks...ERROR
>> Error: Missing binding /usr/src/app/node_modules/node-sass/vendor/linux-x64-57/binding.node
>> Node Sass could not find a binding for your current environment: Linux 64-bit with Node.js 8.x
>>
>> Found bindings for the following environments:
>>   - Windows 64-bit with Node.js 8.x
>>
>> This usually happens because your environment has changed since running `npm install`.
>> Run `npm rebuild node-sass --force` to build the binding for your current environment.

Он говорит, что у него есть привязки Windows, и я должен перестроить его.Поэтому я запустил npm rebuild node-sass и получил следующий вывод.

Binary found at C:\Users\caskman\projects\signin-widget\node_modules\node-sass\vendor\win32-x64-57\binding.node
Testing binary
Binary is fine
node-sass@4.5.3 C:\Users\caskman\projects\signin-widget\node_modules\node-sass

Похоже, что все в порядке, но повторный запуск docker-compose все равно выдает ту же ошибку.Затем я добавил флаг принудительного запуска для запуска npm rebuild node-sass --force и получил:

Project "C:\Users\caskman\projects\signin-widget\node_modules\node-sass\build\binding.sln" on node 1 (default targets).
ValidateSolutionConfiguration:
  Building solution configuration "Release|x64".
Project "C:\Users\caskman\projects\signin-widget\node_modules\node-sass\build\binding.sln" (1) is building "C:\Users\caskman\projects\signin-widget\node_modules\node-sass\build\binding.vcxproj.metaproj" (2) on node 1 (default targets).
Project "C:\Users\caskman\projects\signin-widget\node_modules\node-sass\build\binding.vcxproj.metaproj" (2) is building "C:\Users\caskman\projects\signin-widget\node_modules\node-sass\build\src\libsass.vcxproj" (3) on node 1 (default targets).
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.Cpp.DesignTime.targets(491,5): error MSB4062: The "SetEnv" task couldnot be loaded from the assembly C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.Build.CppTasks.Common.dll. Could not load file or assembly 'Microsoft.Build.Utilities.Core, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. Confirm that the <UsingTask> declaration is correct, that the assembly and all its dependencies are available, and that the task contains a public class that implements Microsoft.Build.Framework.ITask. [C:\Users\caskman\projects\signin-widget\node_modules\node-sass\build\src\libsass.vcxproj]
Done Building Project "C:\Users\caskman\projects\signin-widget\node_modules\node-sass\build\src\libsass.vcxproj" (default targets) -- FAILED.

Done Building Project "C:\Users\caskman\projects\signin-widget\node_modules\node-sass\build\binding.vcxproj.metaproj" (default targets) -- FAILED.

Done Building Project "C:\Users\caskman\projects\signin-widget\node_modules\node-sass\build\binding.sln" (default targets) -- FAILED.


Build FAILED.

"C:\Users\caskman\projects\signin-widget\node_modules\node-sass\build\binding.sln" (default target) (1) ->
"C:\Users\caskman\projects\signin-widget\node_modules\node-sass\build\binding.vcxproj.metaproj" (default target) (2) ->
"C:\Users\caskman\projects\signin-widget\node_modules\node-sass\build\src\libsass.vcxproj" (default target) (3) ->
(SetTelemetryEnvironmentVariables target) ->
  C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.Cpp.DesignTime.targets(491,5): error MSB4062: The "SetEnv" task could not be loaded from the assembly C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.Build.CppTasks.Common.dll. Could not load file or assembly 'Microsoft.Build.Utilities.Core, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified. Confirm that the <UsingTask> declaration is correct, that the assembly and all its dependencies are available, and that the task contains a public class that implements Microsoft.Build.Framework.ITask. [C:\Users\caskman\projects\signin-widget\node_modules\node-sass\build\src\libsass.vcxproj
]

Я попытался перезапустить Docker, обрезать Docker, мой компьютер, очистить node_modules перед переустановкой, и sshing в контейнер, удалить и переустановитьnode-sass вручную.

...