无法将webpack捆绑的UMD库作为ES6导入导入

您所在的位置:网站首页 tostringtag 无法将webpack捆绑的UMD库作为ES6导入导入

无法将webpack捆绑的UMD库作为ES6导入导入

2023-05-27 15:42| 来源: 网络整理| 查看: 265

我用Webpack编写了一个javascript库。入口点someClass.js如下所示:

import x from './x' /* several more imports here */ class SomeClass {} export default SomeClass;

我捆绑这个库的webpack配置如下:

module.exports = { entry: './someClass.js', output: { path: __dirname, filename: 'lib.js', library: 'lib', libraryTarget: 'umd', },

然后,我将生成的lib.js导入到定义如下的简单index.html中:

在app.js中,我只是尝试导入文件,如下所示:

import * as lib from './lib.js'; console.log(lib); // Output: Module {Symbol(Symbol.toStringTag): "Module"} Symbol(Symbol.toStringTag): "Module"

然而,这个导入语句似乎没有按计划工作(我希望是一个带有default字段的模块,它是我的SomeClass构造函数)。

访问库的缺省导出导入的惟一方法是在app.js中执行全局导入语句,如下所示,该语句将lib设置为window上的对象

import './lib.js'; console.log(window.lib); // Output: Module {default: ƒ, __esModule: true, Symbol(Symbol.toStringTag): "Module"} default: class SomeClass_SomeClass

我不希望我的类在全局window上可用,因为这使得模块化我的代码变得很困难。

我还希望能够在web上的各种地方使用这个库(react应用程序,独立的html文件等),所以想要最小化依赖。

有什么方法可以将模块作为es6导入导入吗?



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3