我有一个无服务器的nodejs项目,工作得很好。没有触摸它一个星期,想重新部署它,现在我遇到了以下错误:
1)EPERM:不允许操作,scandir'D:\ GIT \ awesome.build \ node_modules' 2)EEXIST:文件已经存在,符号链接'D:\ GIT \ awesome \ node_modules' - > “d:\ GIT \ awesome.build \ node_modules”
首先我得到第一个错误。如果我第二次尝试,我会得到第二个。如果我删除.build,我会回到收到第一个。
我知道在闲置的一周里,我确实得到了春季Windows更新。
Windows 10 17134.48 NPM 6.1.0 Nodejs 8.11.1
任何可能导致此问题的想法?
答案 0 :(得分:6)
更新了答案
我们已经确定并发现了与此相关的问题。我们已经发布了一个专门针对此修复程序的新NPM模块,并在原始插件上创建了一个PR(但他没有多年更新)
修正版 https://www.npmjs.com/package/@hewmen/serverless-plugin-typescript
原始答案:
我们遇到了完全相同的问题。多个无服务器项目,多台计算机。我们也尝试过不同的节点版本。完全擦除抓取的回购并重做它。我们尝试过使用高架控制台。不知道发生了什么,但是我们在3台不同的机器上的所有内容上都得到了完全相同的错误。
目前的怀疑是Windows最近更新了它的一个更新...但我想我们会看到更多的信息。
但是,我们确实为此找到了解决方法。
删除您当前的' .build'和'。无框架'根项目区域内的文件夹
在命令提示符下,运行' sls package'并让它以相同的错误失败
手动复制' node_modules'和' package.json'从根目录进入.build文件夹(删除那里的那些)。这不会导致错误,说.build目录已经存在,你可能已经看到了这个目标。
- 醇>
在命令提示符下,运行' sls deploy' (或者' sls package'如果你只想包装)
不理想......但是在我们弄清楚真正的问题之前,它让我们再次部署。
问题似乎在于为' .build'中的node_modules创建符号链接的方式。夹。它链接了一个目录,但似乎无论出于何种原因突然将其视为一个文件。在Windows中,如果你使用" mklink"没有' / D'目录上的选项,它将为您提供我们在' .build'中看到的相同结果。夹。如果你使用mklink / D - 你就不会遇到这个问题。
这就是为什么我们目前的怀疑是Windows更新。因为一切都运行得很好,所以我们所有Windows PC上的所有项目都停止了。我们已经将我们的回购卷回到了我们已经成功部署的东西上,没有任何问题。我们已经尝试重新部署我们几个月未触及的项目,同样的问题。
至少可以说非常烦人。如果我们发现错误,我会更新。