一、问题描述
在VSCode中使用code runner插件运行单个文件时,文件中使用了相对路径,使用node运行时正常,但是使用code runner运行时报错,找不到该路径或文件。这可能是code runner的工作目录和文件执行目录不一致造成的。
如我在本目录下创建一个data.txt文件,然后将其重命名,代码如下,
const fs = require('fs')
fs.rename('./data.txt','./newdata.txt',err=>{
if (err) {
console.log('重命名失败');
console.log(err);
return
}
console.log('重命名成功');
})
若是使用node命令运行当前目录下的文件是可以正常运行的,但是使用 code runner插件运行时,这输出显示:
显然** './data.txt'** 这里的路径是应该在 **fs模块(file system 文件系统) **这个文件下的,代码中使用相对路径也是没有问题的,而报错显示是在Node这个更目录下寻找,然后找不到,我们发现文件running路径是正确的,但是文件内容的相对路径却到了整个根目录下,导致文件中的使用的相对目录找不到对应的文件:
当我们以Node为当前路径,然后去书写相对路径,即将路径修改为 './fs模块(file system 文件系统)/data.txt' ,然后使用code runner时,发现运行成功。这也就是说code runner的工作目录和文件执行目录不一致。显然我们不能使用这种相对路径,这可能会导致我们正常运行查询时相对路径错误。
二、解决方法
在VSCode中找到设置,搜索 file dir ,找到如下选项(Code-runner: File Directory As Cwd),然后勾上:这个选项的意思是 将执行文件的目录作为工作目录 这样的话当文件运行时,就会以当前文件本身目录为参考,去寻找相对目录,也就可以正常的使用相对目录。
或者:
也可以在setting.json文件中 添加 "code-runner.fileDirectoryAsCwd": true 配置 效果是一样的
{
...
"code-runner.fileDirectoryAsCwd": true
}
不知道怎么打开setting.json的可以看一下这个:vscode如何打开settings.json_怎么在vscode的setting-CSDN博客
还可以:
版权归原作者 hpz1223 所有, 如有侵权,请联系我们删除。