Я пытаюсь перенести более старую библиотеку для использования импорта / экспорта ES6 (например, замена const SomeClass = require('./SomeClass')
на import SomeClass from './SomeClass'
).
Проблема заключается в том, что при попытке использоватьСгенерированный пакет umd lib, вместо самой библиотеки возвращается экземпляр Module
.
<script src="lib.min.js"></script>
<script>
var lib = new Lib();
// Should be Lib instance, instead receive the following:
Module { {default: ƒ, __esModule: true, Symbol(Symbol.toStringTag): "Module" }
<script>
Вот мои package.json devDependencies:
"@babel/core": "^7.4.3",
"@babel/preset-env": "^7.4.3",
"babel-loader": "^8.0.5",
"babel-plugin-syntax-dynamic-import": "^6.18.0",
"webpack": "^4.30.0",
"webpack-cli": "^3.3.1"
Вот мой конфиг веб-пакета:
module.exports = {
mode: 'production',
entry: './src/index.js',
output: {
libraryTarget: 'umd',
library: 'Lib',
filename: 'lib.min.js',
path: (__dirname + '/dist')
},
module: {
rules: [
{
test: /\.js$/,
include: [__dirname + '/src'],
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env']
}
}
]
}
};
А вот пример кода из библиотеки, над которой я работаю:
// /src/SomeClass.js
export default class SomeClass {...};
// /src/index.js
import SomeClass from './SomeClass';
export default SomeClass;
Возможно, я что-то напутал с веб-пакетом/ babel-loader, но не могу найти, что именно я делаю неправильно.