我有一个使用 socket.io-client 的 Nuxt 3 应用程序。该应用程序在开发过程中使用香草
nuxt build
过程构建并运行良好。
当我尝试使用 Nitro (
NITRO_PRESET=firebase nuxt build
) 的“firebase”预设构建和部署到 Firebase 时,生成的包无法安装并出现此错误:
npm ERR! code EINVALIDPACKAGENAME
npm ERR! Invalid package name "socket.io-client/build/esm-debug" of package "socket.io-client/build/[email protected]": name can only contain URL-friendly characters.
我可以看到这个“socket.io-client/build/esm-debug”包实际上在生成并放置在
.output/server/package.json
中的 package.json 中被引用(即使它在我的任何地方都没有被引用自己的项目)。当我在此目录中本地运行npm install
时,我收到相同的错误消息。
似乎这个包由于某种原因被构建过程注入,模块名称让 npm 不高兴。我能做些什么来防止这种情况发生吗?
使用节点 18,[email protected]
构建过程的简短输出:
> NITRO_PRESET=firebase npm run build
Nuxi 3.4.3
Nuxt 3.4.3 with Nitro 2.4.0
ℹ Building client...
ℹ vite v4.3.5 building for production...
ℹ vite v4.3.5 building SSR bundle for production...
ℹ Building Nitro Server (preset: firebase)
✔ Nitro server built
Σ Total size: 16.7 MB (3.87 MB gzip)
✔ You can deploy this build using npx firebase deploy