如何让雪堆查看子路径的包内

问题描述

我现在正在构建一个 Snowpack 应用程序,我想在前端导入 socket.io client(用于智能感知和离线开发测试)。但是,socket.io 仅在使用 import ... from 'socket.io' 时导出后端材料。

通常,我使用

import { io } from 'socket.io/client-dist/socket.io.js';

获得所有正确的文件和导出,但是,当使用雪包构建时,我收到此错误:

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 导入的。我明白错误在说什么,但我在网上找不到任何东西或任何东西来解决它。有谁知道如何解决这个问题?

解决方法

注意:这是一个“hacky”修复,我认为它很混乱,不能用于更大的项目。

我通过编辑 package.json 包的 socket.io(在 node_modules 中)使用与实际目录路径完全相同的临时导出别名对此进行了修补:

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"
  },

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...