javascript 未找到模块:导入twilio节目时无法解析'net',Nextjs错误

ruyhziif  于 2023-01-24  发布在  Java
关注(0)|答案(3)|浏览(157)

控制台

我开始学习Next.js。当我导入Twilio时,它显示错误“fs未找到,net未找到”

./node_modules/https-proxy-agent/dist/agent.js:15:0
Module not found: Can't resolve 'net'

    Import trace for requested module:
    ./node_modules/https-proxy-agent/dist/index.js
    ./node_modules/twilio/lib/base/RequestClient.js
    ./node_modules/twilio/lib/index.js
    ./components/Login/ForgotPassword.jsx
    ./components/Login/Login.js
    ./pages/login/index.js
    
    https://nextjs.org/docs/messages/module-not-found
cgfeq70w

cgfeq70w1#

从版本5开始,Webpack不包含节点库的多边形填充。
在您的next.config.js中添加以下Webpack配置就可以了:

const nextConfig = {
  ...
  webpack: config => {
    config.resolve.fallback = { ...config.resolve.fallback, net: false, os: false };
    return config;
  },
  ...
}
1yjd4xko

1yjd4xko2#

我知道Next.js在客户端和服务器端都运行代码,但这看起来像是你试图在客户端使用Twilio库,Twilio库不是为在客户端使用而构建的,这是预期的行为。

如果您尝试从前端调用Twilio API,您将暴露您的帐户SID和身份验证令牌,恶意用户可能会获取这些信息并用于滥用您的帐户。

相反,您应该在服务器端调用Twilio API,并从前端向您自己的服务器发出请求。
这是我写的一个sending an SMS from React with Twilio的例子(虽然不是用Next.js),这是一篇博客文章,看起来像是展示了你应该做什么,由creating an API route in Next.js to send an SMS with Twilio。无论你希望用API做什么,这些文章应该给予你一个如何接近它的想法。

yk9xbfzb

yk9xbfzb3#

您正在客户端运行代码,或者至少nextjs认为您正在客户端运行代码,尝试跟踪堆栈跟踪,看看您是如何调用导入net的代码的。

相关问题