错误:找不到带有 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】:
问题似乎是您为外部模块添加了入口点,即您的discord
和buttons
入口点。入口点应该是您自己的脚本,通常不是外部的。如果您不打算运行多个进程,那么您也只需要一个入口点。
【讨论】:
以上是关于错误:找不到带有 discord-buttons、discord.js、TypeScrpit 和 webpack 的模块“./undefined”的主要内容,如果未能解决你的问题,请参考以下文章
错误:ld:找不到带有 CocoaPods 的 -lPods 的库
带有 Dropbox SDK 的 TICoreDataSync 给出“找不到路径”错误
模板渲染期间的 Django 错误。找不到带有参数“(”,)'和关键字参数''的'name'的反向