Node.js 无服务器 Windows 10
Nodejs serverless Windows 10
我有一个运行良好的无服务器 nodejs 项目。一个星期没碰它,想重新部署它,现在我遇到了以下错误:
1) EPERM:不允许操作,scandir ‘D:\GIT\awesome.build\node_modules’
2) EEXIST: 文件已经存在,符号链接'D:\GIT\awesome\node_modules' -> 'D:\GIT\awesome.build\node_modules'
首先我得到了第一个错误。如果我第二次尝试,我会得到第二个。如果我删除 .build,我将返回接收第一个。
我知道在空闲的那一周我确实得到了 spring Windows 更新。
Windows 10 17134.48
NPM 6.1.0
节点 8.11.1
知道是什么原因造成的吗?
更新答案
我们已经确定并发现了与此相关的问题。我们发布了一个新的 NPM 模块,专门针对此修复程序,并在原始插件上创建了一个 PR(但他已经很久没有更新了)
固定版本
https://www.npmjs.com/package/@hewmen/serverless-plugin-typescript
原答案:
我们 运行 遇到了完全相同的问题。多个无服务器项目,多台计算机。我们也尝试了不同的节点版本。完全擦除获取的回购并重做。我们尝试过使用提升的控制台。不知道发生了什么,但我们在 3 台不同机器上的所有内容上都遇到了完全相同的错误。
目前的怀疑是 Windows 最近做了一个更新来清理它..但我想我们会看到更多关于它的信息。
不过,我们确实找到了解决方法。
Delete your current '.build' and '.serverless' folders inside the root project area
In command prompt, run 'sls package' and let it fail with the same error
Manually copy over 'node_modules' and 'package.json' from the root directory into the .build folder (delete the ones in there). This won't cause the error saying the .build directory already exists which you might have seen fighting this.
In command prompt, run 'sls deploy' (or 'sls package' if you only want to package)
不理想...但它让我们再次部署,直到我们找出真正的问题。
问题似乎在于为“.build”文件夹内的 node_modules 创建符号 link 的方式。它是 linking 一个目录,但似乎出于某种原因突然将其视为一个文件。在 windows 中,如果您在目录中使用不带 '/D' 选项的 "mklink",它会给出与在 '.build' 文件夹中看到的相同的结果。如果你执行 mklink /D - 你就没有这个问题。
这就是为什么我们目前怀疑是 Windows 更新。因为一切都运行良好,所以我们所有 Windows PC 上的所有项目都停止了。我们已经将我们的回购回滚到我们已经成功部署的东西,没有问题。我们已尝试重新部署几个月来未触及的项目,同样的问题。
至少可以说这很烦人。如果我们发现问题所在,我会更新。
我有一个运行良好的无服务器 nodejs 项目。一个星期没碰它,想重新部署它,现在我遇到了以下错误:
1) EPERM:不允许操作,scandir ‘D:\GIT\awesome.build\node_modules’ 2) EEXIST: 文件已经存在,符号链接'D:\GIT\awesome\node_modules' -> 'D:\GIT\awesome.build\node_modules'
首先我得到了第一个错误。如果我第二次尝试,我会得到第二个。如果我删除 .build,我将返回接收第一个。
我知道在空闲的那一周我确实得到了 spring Windows 更新。
Windows 10 17134.48 NPM 6.1.0 节点 8.11.1
知道是什么原因造成的吗?
更新答案
我们已经确定并发现了与此相关的问题。我们发布了一个新的 NPM 模块,专门针对此修复程序,并在原始插件上创建了一个 PR(但他已经很久没有更新了)
固定版本 https://www.npmjs.com/package/@hewmen/serverless-plugin-typescript
原答案:
我们 运行 遇到了完全相同的问题。多个无服务器项目,多台计算机。我们也尝试了不同的节点版本。完全擦除获取的回购并重做。我们尝试过使用提升的控制台。不知道发生了什么,但我们在 3 台不同机器上的所有内容上都遇到了完全相同的错误。
目前的怀疑是 Windows 最近做了一个更新来清理它..但我想我们会看到更多关于它的信息。
不过,我们确实找到了解决方法。
Delete your current '.build' and '.serverless' folders inside the root project area
In command prompt, run 'sls package' and let it fail with the same error
Manually copy over 'node_modules' and 'package.json' from the root directory into the .build folder (delete the ones in there). This won't cause the error saying the .build directory already exists which you might have seen fighting this.
In command prompt, run 'sls deploy' (or 'sls package' if you only want to package)
不理想...但它让我们再次部署,直到我们找出真正的问题。
问题似乎在于为“.build”文件夹内的 node_modules 创建符号 link 的方式。它是 linking 一个目录,但似乎出于某种原因突然将其视为一个文件。在 windows 中,如果您在目录中使用不带 '/D' 选项的 "mklink",它会给出与在 '.build' 文件夹中看到的相同的结果。如果你执行 mklink /D - 你就没有这个问题。
这就是为什么我们目前怀疑是 Windows 更新。因为一切都运行良好,所以我们所有 Windows PC 上的所有项目都停止了。我们已经将我们的回购回滚到我们已经成功部署的东西,没有问题。我们已尝试重新部署几个月来未触及的项目,同样的问题。
至少可以说这很烦人。如果我们发现问题所在,我会更新。