You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Web应用中已存在credentials.json却报模块找不到错误求助

解决方案:Cannot find module 'credentials.json'

1. 验证工作目录是否匹配

Node.js的process.cwd()返回的是当前运行脚本的终端目录,并非脚本文件所在的目录。比如你在/Users/user目录下运行node Desktop/contratos/script.js,process.cwd()会指向/Users/user,而非/Users/user/Desktop/contratos。

先在代码开头添加打印语句,确认实际路径:

const path = require('path');
console.log('当前工作目录:', process.cwd());
console.log('脚本所在目录:', __dirname);

运行脚本后对比输出路径,确认credentials.json是否放在了process.cwd()对应的目录中。

2. 改用脚本所在目录(更可靠的路径方式)

把路径换成基于脚本文件所在目录的__dirname,彻底避免工作目录不一致的问题:

// 替换原有的TOKEN_PATH和CREDENTIALS_PATH定义
const TOKEN_PATH = path.join(__dirname, 'token.json');
const CREDENTIALS_PATH = path.join(__dirname, 'credentials.json');

这样无论你从哪个目录运行脚本,都会从脚本所在文件夹读取credentials.json。

3. 检查文件本身的正确性

  • 确认文件名拼写完全正确:是credentials.json,无大小写错误(Mac/Linux系统区分文件名大小写),也没有多余后缀(比如credentials.json.txt)。
  • 检查文件权限:确保Node进程可读取该文件,在终端运行:
    # Mac/Linux系统
    ls -l /Users/user/Desktop/contratos/credentials.json
    
    确保文件权限包含读权限(如-rw-r--r--)。

4. 确认authenticate方法的参数兼容性

如果你使用的是@google-cloud/local-auth库的authenticate方法,keyfilePath参数是合规的,但如果仍有问题,可尝试直接传入文件内容:

// 在authorize函数中替换authenticate调用部分
const credentialsContent = await fs.readFile(CREDENTIALS_PATH);
const credentials = JSON.parse(credentialsContent);
client = await authenticate({
  scopes: SCOPES,
  credentials: credentials,
});

内容的提问来源于stack exchange,提问作者user29972736

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 20:19:50