Azure nodejs dist目录“错误:EBUSY”或文件被静默未覆盖

时间:2019-01-22 13:08:35

标签: node.js windows azure

我们有一个nodejs-快速的,有角度的应用程序。 Express应用程序和Angular应用程序是分别构建的,并且Angular已添加到Express应用程序下的static/目录中。在这种形式中,两者都被移到dist目录中以使用node运行。它已部署到Azure并在Windows服务器下运行(不是我的选择)。

  1. 如果部署脚本删除dist/目录,它将失败并显示

    ...
    remote: > bottal@1.0.0 clear:dist D:\home\site\wwwroot
    remote: > rimraf dist
    remote:
    remote: D:\home\site\wwwroot\node_modules\rimraf\bin.js:47
    remote:       throw er
    remote:       ^
    remote:
    remote: Error: EBUSY: resource busy or locked, rmdir 'D:\home\site\wwwroot\dist'
    
  2. 如果未删除dist目录,则部署不会通过不覆盖文件而静默失败。

是否有编写此类应用程序的最佳方法?

1 个答案:

答案 0 :(得分:0)

此问题通过两种方式解决。

  1. 删除Azure deploy.sh(在.deployment文件中指定)中的目录
  2. 改为使用zip而不是git local进行部署(哎呀,我上面没有说过)。

两者都能解决问题,但是使zip部署解决方案的原因是,与在npm install中执行相比,git local(依赖项的下载和安装)似乎几乎是即时的。部署。我们有点急于继续前进(在浪费大量时间解决本不应该成为问题的时间之后),我没有为此花费任何时间。知道它是否为真将很有趣。d