1

我现在正在构建一个雪包应用程序,我想socket.io client在前端导入(用于智能感知和离线开发测试)。但是,socket.io使用import ... from '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. 我明白错误在说什么,但我在网上找不到任何东西或任何东西来解决它。有谁知道如何解决这一问题?

4

1 回答 1

0

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

我通过编辑包 (In ) 来修复这个package.json问题,以使用与真实目录路径完全相同的临时导出别名:socket.ionode_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"
  },
于 2020-12-20T01:38:06.827 回答