[2021-04-04 02:35:50.237] [exthost] [info] ExtensionService#loadCommonJSModule file:///c:/Users/zj/.vscode/extensions/cl.eide-2.5.0/dist/extension.js [2021-04-04 02:35:51.820] [exthost] [error] Activating extension cl.eide failed due to an error: [2021-04-04 02:35:51.828] [exthost] [error] Error: EEXIST: file already exists, mkdir 'C:\Users' at mkdirSync (fs.js:925:3) at Object.e.mkdirSync (electron/js2c/asar_bundle.js:5:12016) at s.CreateDir (D:\win7_sys_data\Users\zj.vscode\extensions\cl.eide-2.5.0\dist\extension.js:1:2673) at y.GetTmpDir (D:\win7_sys_data\Users\zj.vscode\extensions\cl.eide-2.5.0\dist\extension.js:1:8485) at y.loadCache (D:\win7_sys_data\Users\zj.vscode\extensions\cl.eide-2.5.0\dist\extension.js:1:7401) at new y (D:\win7_sys_data\Users\zj.vscode\extensions\cl.eide-2.5.0\dist\extension.js:1:6048) at Function.GetInstance (D:\win7_sys_data\Users\zj.vscode\extensions\cl.eide-2.5.0\dist\extension.js:1:6175) at D:\win7_sys_data\Users\zj.vscode\extensions\cl.eide-2.5.0\dist\extension.js:1:196044 at t.activate (D:\win7_sys_data\Users\zj.vscode\extensions\cl.eide-2.5.0\dist\extension.js:1:196448) at Function.callActivateOptional (d:\programe\ide\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:91:14382) at Function.callActivate (d:\programe\ide\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:91:14051) at d:\programe\ide\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:91:12203 at runMicrotasks (<anonymous>) at processTicksAndRejections (internal/process/task_queues.js:97:5) at async Promise.all (index 0) at h.$activate (d:\programe\ide\Microsoft VS Code\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:91:19131)
看上去像是创建c:\users这个目录的问题,我的c:\users这个目录是个软链接,从d盘链接过来的
yufei
插件需要创建临时文件夹用来存放模板数据,临时文件夹位置是从操作系统环境变量获取的
c:\Users 本来就存在,你又创建了一个 c:\Users 软链接在C盘下,重名了,API 无法判断目录是否存在
需要的临时文件夹位置一般在:C:\Users\<用户名>\AppData\Local\Temp\EIDE
C:\Users\<用户名>\AppData\Local\Temp\EIDE
admin 我在安装操作系统时已经把c:\users已经移动到d盘了,然后使用软链接建立了c:\users 我这里c:\users只有一个,不是有一个c:\users目录,又有一个软链接,而是只有一个c:\users软链接
你把nodejs里判断的语句发出来,我在我这里用nodejs跑一下,看问题在哪
const fs = require('fs'); const _path = 'c:\\Users'; if (!(fs.existsSync(_path) && fs.lstatSync(_path).isDirectory())) { fs.mkdirSync(_path); }
admin console.log(fs.existsSync(path)) true console.log(fs.lstatSync(path).isSymbolicLink()) true console.log(fs.lstatSync(_path).isDirectory()) false
在判断那里加上是否是链接的判断应该就没问题了
是的
对于当前的版本,你只需要手动创建一下 EIDE 这个临时文件目录应该就可以了
目录位置:当前用户的环境变量:TMP 或者 TEMP 中
TMP
TEMP