【问题标题】:ASP.NET 5 Publish to Azure Gulp libass errorASP.NET 5 发布到 Azure Gulp libass 错误
【发布时间】:2015-12-30 11:33:49
【问题描述】:

我正在开发一个 asp.net 5 网站(使用 gulp 和 gulp-sass),但每当我尝试发布到我的 Azure 网站时,我都会收到以下错误

DNU(0,0): Error : Thelibsassbinding was not found in project_path\node_modules\gulp-sass\node_modules\node-sass\vendor\win32-ia32-11\binding.node 下面的完整堆栈跟踪

在我关注 this article 之前,我在 Visual Studio 任务运行资源管理器中遇到了完全相同的错误,但我在发布时仍然收到错误。

有什么帮助吗?

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.

【问题讨论】:

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

标签: visual-studio-2015 gulp asp.net-core azure-web-app-service gulp-sass


【解决方案1】:

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

您可以通过将 node --version 放在 project.json 中的预发布脚本中来进行测试。

我的输出v0.10.31

您可以在工具->选项->项目和解决方案->外部 Web 工具中更改大多数 Visual Studio 工具使用的版本(Task Runner Explorer、节点包还原等)通过将$(PATH) 移动到顶部或将C:\Program Files\nodejs 添加到顶部。

很遗憾,预发布脚本中没有考虑到这一点

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

项目.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%

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

【讨论】:

    【解决方案2】:

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

    此处说明:https://github.com/aspnet/Home/issues/782

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-24
      • 2015-11-03
      • 1970-01-01
      • 2023-04-11
      相关资源
      最近更新 更多