错误:找不到带有 discord-buttons、discord.js、TypeScrpit 和 webpack 的模块“./undefined”

Posted

技术标签:

【中文标题】错误:找不到带有 discord-buttons、discord.js、TypeScrpit 和 webpack 的模块“./undefined”【英文标题】:Error: Cannot find module './undefined' with discord-buttons, discord.js, TypeScrpit and webpack 【发布时间】:2021-10-01 06:33:54 【问题描述】:

我为我的 Discord 机器人使用 TypeScript 和 Webpack。它以前编译没有问题,直到我尝试使用discord-buttons。

我找到了一些关于 discord.js、TypesScript 和 Webpack 的问题和答案。但是没有人提到不和谐按钮。

我的 webpack 配置文件中的 module.exports 如下所示:

entry: 
    index: 
      import: "./src/index.ts",
      dependOn: ["discord", "buttons"]
    ,
    discord: "discord.js",
    buttons: "discord-buttons"
,
resolve: 
    extensions: ['.tsx', '.ts', '.js'],
,
output: 
    filename: "[name].bundle.js",
    path: path.resolve(__dirname, "dist")
,
module: 
    rules: [
      test: /\.tsx?$/,
      use: 'ts-loader',
      exclude: /node_modules/,
    , ],
,
target: "node",
externals: [nodeExternals()],

我的index.ts 文件对discord-buttons 没有任何作用,而是导入它并使用disbut

import  Client, Message, MessageEmbed, TextChannel  from "discord.js"
import disbut from 'discord-buttons'

const token:string = `token`
const client: Client = new Client()
disbut(client)

client.login(token)

当我使用 Webpack(在开发模式下)构建时,它说没有错误,但是当我运行 index.bundle.js 时得到一个错误

> webpack --mode development --config webpack.config.dev.js

asset index.bundle.js 75.4 KiB [emitted] (name: index)
asset buttons.bundle.js 6.75 KiB [compared for emit] (name: buttons)
asset discord.bundle.js 6.72 KiB [compared for emit] (name: discord)
runtime modules 5.42 KiB 16 modules
built modules 62.7 KiB [built]
  cacheable modules 62.6 KiB
    modules by path ./src/modules/*.ts 48.5 KiB
      ./src/modules/CommandManager.ts 19.8 KiB [built] [code generated]
      ./src/modules/OutputManager.ts 2.05 KiB [built] [code generated]
      ./src/modules/LogManager.ts 3.59 KiB [built] [code generated]
      ./src/modules/FirebaseManager.ts 17.9 KiB [built] [code generated]
      ./src/modules/SpikeChannels.ts 5.17 KiB [built] [code generated]
    ./src/index.ts 11.8 KiB [built] [code generated]
    ./spike-database-firebase-admin-ETC.json 2.26 KiB [built] [code generated]
  external "discord.js" 42 bytes [built] [code generated]
  external "discord-buttons" 42 bytes [built] [code generated]
  external "fastest-levenshtein" 42 bytes [built] [code generated]
  external "firebase-admin" 42 bytes [built] [code generated]
webpack 5.46.0 compiled successfully in 4242 ms

> spike-bot@1.0.0 bot
> node ./dist/index.bundle.js

node:internal/modules/cjs/loader:930
  throw err;
  ^

Error: Cannot find module './undefined'
Require stack:
- /home/eban/PATH_TO_PROJECT/dist/discord.bundle.js
- /home/eban/PATH_TO_PROJECT/dist/index.bundle.js
    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:927:15)
    at Function.Module._load (node:internal/modules/cjs/loader:772:27)
    at Module.require (node:internal/modules/cjs/loader:999:19)
    at require (node:internal/modules/cjs/helpers:93:18)
    at Object.__webpack_require__.f.require (/home/eban/PATH_TO_PROJECT/dist/discord.bundle.js:157:28)
    at /home/eban/PATH_TO_PROJECT/dist/discord.bundle.js:84:40
    at Array.reduce (<anonymous>)
    at Function.__webpack_require__.e (/home/eban/PATH_TO_PROJECT/dist/discord.bundle.js:83:67)
    at Array.map (<anonymous>)
    at Function.__webpack_require__.X (/home/eban/PATH_TO_PROJECT/dist/discord.bundle.js:121:22) 
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/home/PATH_TO_PROJECT/dist/discord.bundle.js',
    '/home/PATH_TO_PROJECT/dist/index.bundle.js'
  ]

【问题讨论】:

安装source-map-support 并使用node -r source-map-support/register ./dist/index.bundle.js 运行以获得正确的堆栈跟踪,映射到原始代码。 我仍然得到Error: Cannot find module './undefined' :( @KelvinSchoofs 是的,但是现在堆栈跟踪应该不同了,不是吗?所以你可以看到究竟是什么导致了错误。 它说导致此问题的行是 discord.bundle.js:121:22 (Function.__webpack_require__.X (/home/eban/PATH_TO_PROJECT/dist/discord.bundle.js:121:22) ),即chunkIds.map(__webpack_require__.e, __webpack_require__)。由于我对此不太了解,因此我不知道此错误是什么意思。 @KelvinSchoofs 那么不确定。唯一对我来说看起来很奇怪并且可能是错误的东西是 nodeExternals() 位或您为两个外部模块添加入口点的部分。 【参考方案1】:

问题似乎是您为外部模块添加了入口点,即您的discordbuttons 入口点。入口点应该是您自己的脚本,通常不是外部的。如果您不打算运行多个进程,那么您也只需要一个入口点。

【讨论】:

以上是关于错误:找不到带有 discord-buttons、discord.js、TypeScrpit 和 webpack 的模块“./undefined”的主要内容,如果未能解决你的问题,请参考以下文章

运行时错误 2465 找不到带有更改列的字段“|1”

错误:ld:找不到带有 CocoaPods 的 -lPods 的库

带有 Dropbox SDK 的 TICoreDataSync 给出“找不到路径”错误

模板渲染期间的 Django 错误。找不到带有参数“(”,)'和关键字参数''的'name'的反向

在“”类型上找不到带有“数字”类型参数的索引签名 - Typescript 编译器错误

如何使带有“.php”的网址返回“找不到对象”错误?