npm 无法解析Next.js API路由内的“fs”

yruzcnhs  于 2023-10-19  发布在  其他
关注(0)|答案(1)|浏览(109)

我想使用API路由文件中的fs模块来执行一些文件系统操作,但是,我得到了这个错误:Module not found: Can't resolve 'fs'。不仅如此,我不能在我的处理函数中使用fs,而且我也不能启动项目,因为fs错误阻止了这一点。
这就是我的档案。
路径:pages/api/getSchema.js
内容有:

const fs = require("fs");

export default function handler(req, res) {
  const id = req.query.id;
  if(id){
    const schemas = require('../../pageSchemas/index.json');
    res.end(JSON.stringify(schemas[id]));
  }
}
oknwwptz

oknwwptz1#

把API路由移到/pages/api上就可以了

其他错误:

对我来说,这个解决方案解决了fs错误,但也带来了其他错误:

// next.config.js

// For Webpack 4
module.exports = {
  webpack: (config, { isServer }) => {
    // Fixes npm packages that depend on the `fs` module
    if (!isServer) {
      config.node = {
        fs: 'empty'
      };
    }
  
    return config;
  }
};

// For Webpack 5
module.exports = {
  // Remove the next line for newer versions of Next.js
  webpack5: true,
  webpack: (config) => {
    // Disable fallback for the 'fs' module
    config.resolve.fallback = { fs: false };
  
    return config;
  }
};

相关问题