在“ ./n”中找不到导出“默认”(导入为“ n”)

时间:2019-05-22 11:49:00

标签: javascript webpack

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

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
}

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

2 个答案:

答案 0 :(得分:0)

默认导出应通过以下方式导入:

import agl from "./agl";

您的代码无法正常运行,因为您正试图导入所有the named exports

选中this,以了解有关此内容的更多信息。

答案 1 :(得分:0)

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

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

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

代替您的import * as agl …工作。