【问题标题】:export 'default' (imported as 'n') was not found in './n'在“./n”中找不到导出“默认”(导入为“n”)
【发布时间】:2019-05-22 20:21:10
【问题描述】:

我想包含模块的命名空间,当我这样做时,它会给我警告,(并且我的代码将无法工作),我正在像这样导入我的模块

import * as agl from "./agl";

然后像这样使用它:

var vbo = new agl.VertexBuffer();

我的模块只是将模块包含在单个命名空间中:

import VertexArray from "./VertexArray";
import Display from "./Display";
import VertexBuffer from "./VertexBuffer";
import IndexBuffer from "./IndexBuffer"
import Shader from "./Shader";
import ShaderProgram from "./ShaderProgram";
import Texture from "./Texture";
import BufferLayout from "./BufferLayout";




export default {
  VertexArray,
  Display,
  VertexBuffer,
  IndexBuffer,
  Shader,
  ShaderProgram,
  Texture,
  BufferLayout
}

可能是什么问题,如何导入模块的命名空间?

【问题讨论】:

    标签: javascript webpack


    【解决方案1】:

    默认导出应该这样导入:

    import agl from "./agl";
    

    您的代码不起作用,因为您正在尝试导入所有 the named exports

    查看this 了解更多信息。

    【讨论】:

      【解决方案2】:
      export default {
        VertexArray,
        Display,
        VertexBuffer,
        IndexBuffer,
        Shader,
        ShaderProgram,
        Texture,
        BufferLayout
      }
      

      这太可怕了,并导致了您的问题。该模块确实默认导出对象文字,而不是仅使用命名导出。你应该使用

      export {
        VertexArray,
        Display,
        VertexBuffer,
        IndexBuffer,
        Shader,
        ShaderProgram,
        Texture,
        BufferLayout
      }
      

      而不是让您的import * as agl … 工作。

      【讨论】:

        猜你喜欢
        • 2021-12-16
        • 2020-12-25
        • 2021-04-26
        • 2018-02-06
        • 2021-01-10
        • 2021-08-02
        • 1970-01-01
        • 2021-01-10
        • 2021-10-25
        相关资源
        最近更新 更多