【发布时间】:2015-07-22 18:14:07
【问题描述】:
我在使用 VS Online 和 nuget-restore 时遇到问题。它会报告它找不到 Visual Studio 2015 找到并安装的包。所以我在 nuget 的目标文件中指定使用 APIv3 和 APIv2。从那以后,总是可以找到所有 nuget 包,但是我开始遇到不同的、相当随机的 npm 错误。
我有一个预构建脚本(在我的项目文件中配置),它安装所有必要的 npm 和 bower 包,然后运行 gulp。这在本地工作得很好,而且大部分时间也在网上。但平均每 ~ 4 次,我都会收到类似以下的异常:
EPERM, open 'C:\NPM\Cache\fedb6d47-PM-Cache-clone-1-0-2-package-tgz.lock'
或者这个:
EPERM, open 'C:\NPM\Cache\ca5822dc-sh-isarguments-3-0-4-package-tgz.lock'
一开始我正在处理 gulpfile,所以我认为是其中一些更改导致了它,但现在,我什至不再接触那个项目了,它编译得很好,直到突然我再次遇到这个错误。
同时,我添加了一个微小的更改来提交和推送它,它再次编译良好。知道什么会导致这种情况以及我如何至少降低出现该错误的风险吗?
这是我的预构建 powershell 脚本:
param($build_config)
$webProjectName = "WEB_PROJECT"
$scriptpath = $MyInvocation.MyCommand.Path
$dir = Split-Path $scriptpath
cd $dir
cd ..\src\$webProjectName
echo "npm install"
npm install
echo "bower install"
bower install
echo "gulp $build_config"
gulp $build_config
更新:
我曾经通过
执行那个 powershell 脚本PowerShell -File script.ps1
切换到之后
PowerShell -NonInteractive -NoProfile -Command script.ps1
它似乎已经修复了错误,但是在大约 20 次成功构建之后,我再次遇到了类似的问题(虽然现在少了很多)
【问题讨论】:
标签: powershell npm visual-studio-2015 nuget azure-devops