Visual studio 2015 ASP.NET 5发布到Azure Gulp libass错误

Visual studio 2015 ASP.NET 5发布到Azure Gulp libass错误,visual-studio-2015,gulp,asp.net-core,azure-web-app-service,gulp-sass,Visual Studio 2015,Gulp,Asp.net Core,Azure Web App Service,Gulp Sass,我有一个asp.net 5网站(使用gulp和gulp sass)我正在工作,但每当我试图发布到我的Azure网站时,我都会遇到以下错误 DNU(0,0):错误:在下面的项目路径\node\u模块\gulp sass\node\u模块\node sass\vendor\win32-ia32-11\binding.node完整堆栈跟踪中未找到绑定 我在运行资源管理器的VisualStudio任务中遇到了这个完全相同的错误,但在发布时仍然会遇到这个错误 有什么帮助吗 DNU(0,0): Error

我有一个asp.net 5网站(使用gulp和gulp sass)我正在工作,但每当我试图发布到我的Azure网站时,我都会遇到以下错误

DNU(0,0):错误:在下面的项目路径\node\u模块\gulp sass\node\u模块\node sass\vendor\win32-ia32-11\binding.node
完整堆栈跟踪中未找到绑定

我在运行资源管理器的VisualStudio任务中遇到了这个完全相同的错误,但在发布时仍然会遇到这个错误

有什么帮助吗

DNU(0,0): Error : The `libsass` binding was not found in project_path\node_modules\gulp-sass\node_modules\node-sass\vendor\win32-ia32-11\binding.node
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.DNX.Publishing.targets(152,5): Error : This usually happens because your node version has changed.
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.DNX.Publishing.targets(152,5): Error : Run `npm rebuild node-sass` to build the binding for your current node version.
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.DNX.Publishing.targets(152,5): Error :     at Object.sass.getBinaryPath (project_path\node_modules\gulp-sass\node_modules\node-sass\lib\extensions.js:158:11)
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.DNX.Publishing.targets(152,5): Error :     at Object.<anonymous>
    (project_path\node_modules\gulp-sass\node_modules\node-sass\lib\index.js:16:36)
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.DNX.Publishing.targets(152,5): Error :     at Module._compile (module.js:456:26)
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.DNX.Publishing.targets(152,5): Error :     at Object.Module._extensions..js (module.js:474:10)
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.DNX.Publishing.targets(152,5): Error :     at Module.load (module.js:356:32)
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.DNX.Publishing.targets(152,5): Error :     at Function.Module._load (module.js:312:12)
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.DNX.Publishing.targets(152,5): Error :     at Module.require (module.js:364:17)
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.DNX.Publishing.targets(152,5): Error :     at require (module.js:380:17)
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.DNX.Publishing.targets(152,5): Error :     at Object.<anonymous>
    (project_path\node_modules\gulp-sass\index.js:183:21)
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.DNX.Publishing.targets(152,5): Error :     at Module._compile (module.js:456:26)
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.DNX.Publishing.targets(152,5): Error :     at Object.Module._extensions..js (module.js:474:10)
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.DNX.Publishing.targets(152,5): Error : The 'prepublish' script failed with status code 8.
DNU(0,0):错误:在project\u path\node\u modules\gulp sass\node\u modules\node sass\vendor\win32-ia32-11\binding.node中找不到'libsass'绑定
C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.DNX.Publishing.targets(152,5):错误:发生这种情况通常是因为节点版本已更改。
C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.DNX.Publishing.targets(152,5):错误:运行“npm rebuild node sass”为当前节点版本生成绑定。
C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.DNX.Publishing.targets(152,5):错误:位于Object.sass.getBinaryPath(project\u path\node\u modules\gulp sass\node\u modules\node sass\lib\extensions.js:158:11)
C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.DNX.Publishing.targets(152,5):错误:位于对象。
(project\u path\node\u modules\gulp sass\node\u modules\node sass\lib\index.js:16:36)
C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.DNX.Publishing.targets(152,5):错误:在模块处编译(模块.js:456:26)
C:\ProgramFiles(x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.DNX.Publishing.targets(152,5):错误:位于Object.Module.\u extensions..js(Module.js:474:10)
C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.DNX.Publishing.targets(152,5):错误:位于Module.load(Module.js:356:32)
C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.DNX.Publishing.targets(152,5):错误:位于Function.Module.\u load(Module.js:312:12)
C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.DNX.Publishing.targets(152,5):错误:位于Module.require(Module.js:364:17)
C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.DNX.Publishing.targets(152,5):错误:请求时(module.js:380:17)
C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.DNX.Publishing.targets(152,5):错误:位于对象。
(项目路径\节点\模块\gulp sass\index.js:183:21)
C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.DNX.Publishing.targets(152,5):错误:在模块处编译(模块.js:456:26)
C:\ProgramFiles(x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.DNX.Publishing.targets(152,5):错误:位于Object.Module.\u extensions..js(Module.js:474:10)
C:\Program Files(x86)\MSBuild\Microsoft\VisualStudio\v14.0\Web\Microsoft.DNX.Publishing.targets(152,5):错误:“预发布”脚本失败,状态代码为8。

这可能是因为在预发布脚本中使用的node Visual Studio 2015版本与用于开发任务的版本不同

您可以通过将
节点--version
放入project.json中的预发布脚本来测试这一点

矿井输出
v0.10.31

通过将
$(路径)
移动到顶部或将
C:\Program Files\nodejs
添加到顶部,您可以在工具->选项->项目和解决方案->外部Web工具中更改大多数Visual Studio工具使用的版本

不幸的是,这在预发布脚本中没有得到尊重

解决方法是将所有预发布任务放在脚本中,然后调用该脚本

project.json:

...
  "scripts": {
    "prepublish": ["prepublish"]
  }
...
prepublish.cmd:

set PATH=C:\Program Files\nodejs;.\node_modules\.bin;%PATH%

call npm install || goto :error
call bower install || goto :error
call gulp clean || goto :error
call gulp min || goto :error
goto :EOF

:error
echo Failed with error #%errorlevel%.
exit /b %errorlevel%

是否存在跟踪VS中更新节点和npm请求的GitHub问题?这可能是因为在预发布脚本中使用的node Visual Studio 2015版本与用于开发任务的版本不同

您可以通过将
节点--version
放入project.json中的预发布脚本来测试这一点

矿井输出
v0.10.31

通过将
$(路径)
移动到顶部或将
C:\Program Files\nodejs
添加到顶部,您可以在工具->选项->项目和解决方案->外部Web工具中更改大多数Visual Studio工具使用的版本

不幸的是,这在预发布脚本中没有得到尊重

解决方法是将所有预发布任务放在脚本中,然后调用该脚本

project.json:

...
  "scripts": {
    "prepublish": ["prepublish"]
  }
...
prepublish.cmd:

set PATH=C:\Program Files\nodejs;.\node_modules\.bin;%PATH%

call npm install || goto :error
call bower install || goto :error
call gulp clean || goto :error
call gulp min || goto :error
goto :EOF

:error
echo Failed with error #%errorlevel%.
exit /b %errorlevel%

是一个GitHub问题,跟踪VS中更新节点和npm的请求。

尝试删除本地repo中的节点模块文件夹,然后重新启动VS。 这解决了我的问题


此处的说明:

尝试删除本地repo中的node_modules文件夹,然后重新启动VS。 这解决了我的问题


此处说明:

您在本地使用的节点版本是什么?请确保您在本地和网站上使用的节点版本相同。您应该能够使用Kudu的调试控制台({sitename}.scm.azurewebsites.net/DebugConsole)导航到您的project_path/node_modules文件夹并手动安装libsass以确认这是问题所在。本地节点版本为v4.2.4-npm为2.14.12从外观上看,该网站正在运行v4.2.3。不过,我在Kudu调试控制台中找不到任何node_modules目录。我降级到node v4.2.3并运行了npm rebuild,但在本地一切正常本地使用什么节点版本?请确保本地和服务器上的node版本相同