You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Webpack构建JavaScript库:如何直接导入类?

解决Webpack打包库后需加.default才能调用类的问题

方法1:确认Webpack配置生效

你已经在webpack.config.js里配置了libraryExport: "default",这个配置的作用就是把默认导出直接暴露为库的顶层对象,理论上不需要再加.default就能调用。如果没生效,检查两点:

  • 确保Webpack版本是3.x及以上,libraryExport是这个版本之后才支持的配置,旧版本需要升级。
  • 注意类名大小写:源码里类名是Myclass(小写c),但Webpack配置里library设的是MyClass(大写C),虽然不影响功能,但建议统一命名避免混淆。

方法2:改用命名导出

如果不想依赖Webpack的配置,直接修改源码的导出方式,把默认导出换成命名导出:

// index.js
export class MyClass {
  // 类内容...
}

同时调整Webpack配置,删掉libraryExport这一行:

// webpack.config.js
output: {
   library: 'MyClass',
   libraryTarget: 'umd',
   filename: 'index.js',
   path: path.resolve(__dirname, 'dist'),
},

这样不管是ES模块导入还是全局环境使用,都能直接调用MyClass:

// ES模块导入
import { MyClass } from '你的库名';
// 全局环境
const myInstance = new MyClass();

方法3:同时兼容两种导出方式

如果需要保留默认导出的同时支持命名导出,在源码里添加一行命名导出:

// index.js
export default class MyClass {
  // 类内容...
}

export { MyClass };

配合原来的Webpack配置,用户不管用import MyClass from '你的库名'还是import { MyClass } from '你的库名'都能直接拿到类,全局环境也能直接调用MyClass。


内容的提问来源于stack exchange,提问作者JAE L

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 01:02:22