Nuxt 模块未在生产中加载

问题描述 投票:0回答:0

我有一个本地 nuxt(nuxt 3.2.3)模块,它在启动时运行一个 socket.io 服务器,以及连接到 socket.io 服务器的页面。

这在开发中完美运行 (

npm run dev
/
nuxt dev
)

一旦我构建 (

npm run build
/
nuxt build
) 并运行生成的服务器 (
node .output/server/index.mjs
),我的模块似乎没有运行并且我的 socket.io 服务器不存在

为了让我的模块与服务器一起构建,我需要做些什么特别的事情吗?我找不到任何关于这个的文档

我的本地模块是这样的:

./io/index.js

export default function (opts, nuxt) {
  console.log('socket module');
  nuxt.hook('listen', (httpServer) => {
    console.log('socket listen hook');
    const io = socketIO(httpServer);
    io.on('connection', ...
  }
}

我把它作为一个模块放在我的 nuxt 配置中:

export default defineNuxtConfig({
    modules: [
        '~/io/index.js'
    ]
})

(我确实假设它只适用于

'~/io'
但节点抱怨它正在尝试将目录作为文件读取)

在开发中运行时,我在启动开发服务器时获取日志,并且可以连接到 socket.io 服务器

构建时,我确实看到了

socket module
日志,表明它正在对模块执行 something,但是在运行服务器时,我没有日志,没有初始错误,也没有 socket.io 服务器。

当我尝试连接到 socket.io 服务器(即使用我的页面之一)时,节点服务器确实告诉我 /socket.io/?ARGS... 不存在,因此该页面正在正确地尝试连接,但我的模块似乎没有运行

这听起来与这个关于 nuxt 和 socket.io 的问题 相同,但是我认为我正在做的是解决这个问题的方法(nuxt2 与 nuxt3 可能会改变事情)

node.js vue.js socket.io nuxt.js nuxtjs3
© www.soinside.com 2019 - 2024. All rights reserved.