【问题标题】:Module not found: Can't resolve 'child_process' - google-spreadsheet找不到模块:无法解析“child_process” - google-spreadsheet
【发布时间】:2021-06-17 13:56:18
【问题描述】:

我正在尝试将表单数据保存到 Next.js 中的电子表格,但我不断收到此错误,该错误在我导入 google-spreadsheet 后立即出现

错误

./node_modules/google-spreadsheet/node_modules/google-auth-library/build/src/auth/googleauth.js:17:0 未找到模块:无法解析“child_process”

下面是导致错误的原因。

// The error appears when I do this import
import { GoogleSpreadsheet } from "google-spreadsheet";

const SPREADSHEET_ID = process.env.NEXT_PUBLIC_SPREADSHEET_ID;
const SHEET_ID = process.env.NEXT_PUBLIC_SHEET_ID;
const CLIENT_EMAIL = process.env.NEXT_PUBLIC_GOOGLE_CLIENT_EMAIL;
const PRIVATE_KEY = process.env.NEXT_PUBLIC_GOOGLE_SERVICE_PRIVATE_KEY;

const doc = new GoogleSpreadsheet(SPREADSHEET_ID);

const appendSpreadsheet = async (row) => {
    try {
      await doc.useServiceAccountAuth({
        client_email: CLIENT_EMAIL,
        private_key: PRIVATE_KEY,
      });
      // loads document properties and worksheets
      await doc.loadInfo();

      const sheet = doc.sheetsById[SHEET_ID];
      const result = await sheet.addRow(row);
      return result;
    } catch (e) {
      console.error("Error: ", e);
    }
};

【问题讨论】:

标签: javascript reactjs google-sheets next.js google-sheets-api


【解决方案1】:

我只是解决它。

请在您的根目录中创建 next.config.js 文件。 并在下方填写。

module.exports = {
  webpack: config => {
    config.node = {
      fs: 'empty',
      child_process: 'empty',
      net: 'empty',
      dns: 'empty',
      tls: 'empty',
    };
    return config;
  },
};

万岁!

【讨论】:

  • 感谢您的帮助。我能够修复它。
  • @DieudonneAwa 如果解决了您的问题,请接受答案
【解决方案2】:

尝试将导入语句更改为:

const { GoogleSpreadsheet } = require('google-spreadsheet');

来源:https://www.npmjs.com/package/google-spreadsheet

【讨论】:

    【解决方案3】:

    该库尚不支持 ES6 功能

    如果你查看模块导出,你会发现类似这样的东西:

    module.exports = {
      GoogleSpreadsheet,
      GoogleSpreadsheetWorksheet,
      GoogleSpreadsheetRow,
    
      GoogleSpreadsheetFormulaError,
    };
    

    https://github.com/theoephraim/node-google-spreadsheet/blob/master/index.js

    将导入语句更改为commonjs 模块,如下所示:

    const { GoogleSpreadsheet } = require('google-spreadsheet');
    
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-17
      • 2019-06-24
      • 2022-11-09
      • 2019-04-24
      • 2022-08-04
      • 2017-10-23
      • 2021-10-16
      • 2021-12-25
      相关资源
      最近更新 更多