我现在正在构建一个积雪应用程序,我想在前端导入socket.io client (用于智能感知和离线开发测试)。但是,使用import ... from 'socket.io'时,socket.io仅导出后端材质。
通常,我使用
import { io } from 'socket.io/client-dist/socket.io.js';它获取所有正确的文件并导出,然而,当使用snowpack构建时,我得到了这个错误:
Package exports for 'C:\dev\JS\Node+Browser\foo\node_modules\socket.io' do not define a './client-dist/socket.io.js' subpath这会导致构建失败,从而停止所有操作。
现在,我的snowpack.config真的很简单:
module.exports = {
buildOptions: {
out: 'dist/client'
},
mount: {
"src/client": "/"
}
}我的所有其他模块都运行得很好,因为它们都是使用import ... from 'module-name导入的。我理解这个错误是什么意思,但我在网上找不到任何东西或任何东西来解决它。有人知道怎么解决这个问题吗?
发布于 2020-12-20 09:38:07
注意:这是一个“老生常谈”的修复,我认为它很混乱,不能用于更大的项目。
我通过编辑socket.io包(在node_modules中)的package.json来修补它,使其使用与实际目录路径完全相同的临时导出别名:
node_modules/socket.io/package.json
"exports": {
".": [
{
"require": "./dist/index.js",
"import": "./wrapper.mjs"
},
"./src/index.js"
],
"./client-dist/socket.io": "./client-dist/socket.io.js",
"path-to-other-modules": "same-path"
},https://stackoverflow.com/questions/65372677
复制相似问题