Node.js无服务器Windows 10

Mus*_*ons 3 node.js windows-10 serverless-framework

我有一个无服务器的nod​​ejs项目,它运行良好。一周没有接触它,想重新部署它,现在遇到以下错误:

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

任何想法可能是什么原因造成的?

Gho*_*xas 6

更新的答案

我们已经确定并找到了与此相关的问题。我们专门为此修复程序发布了一个新的NPM模块,并在原始插件上创建了PR(但他已经很久没有更新了)

固定版本 https://www.npmjs.com/package/@hewmen/serverless-plugin-typescript

原始答案:

我们遇到了完全相同的问题。多个无服务器项目,多台计算机。我们也尝试了不同的节点版本。完全擦除获取的回购并重做。我们已经尝试使用高级控制台。不知道发生了什么,但是我们在3台不同的机器上的所有东西上都得到了完全相同的错误。

当前的怀疑是Windows最近进行了一次更新,使它崩溃了..但是我认为我们会看到更多关于它的信息。

但是,我们确实找到了解决方法。

  1. 在根项目区域中删除当前的“ .build”和“ .serverless”文件夹

  2. 在命令提示符下,运行“ sls软件包”,并使其失败并显示相同的错误

  3. 将根目录中的“ node_modules”和“ package.json”手动复制到.build文件夹中(删除其中的文件夹)。这不会引起错误,因为您可能已经看到与该目录相关的.build目录。

  4. 在命令提示符下,运行“ sls deploy”(如果只想打包,则运行“ sls package”)

不理想...但是它让我们再次部署,直到我们找出真正的问题。

问题似乎在于在“ .build”文件夹中为node_modules创建符号链接的方式。它正在链接目录,但无论出于何种原因,似乎都突然将其视为文件。在Windows中,如果您在目录上使用不带'/ D'选项的“ mklink”,它将为您提供与'.build'文件夹中相同的结果。如果执行mklink / D,则不会出现此问题。

这就是为什么我们目前怀疑是Windows更新的原因。因为一切工作都很好,所以我们所有Windows PC上的所有项目都停止了。我们已将存储库回滚到已成功部署的内容,没有问题。我们试图重新部署几个月来没有碰到的同一项目。

至少可以说这很烦人。如果我们发现问题所在,我将进行更新。