У меня есть два JS класса в разных файлах, таких как:
// Class1.js
export default class Class1 { /* ... */ }
// Class2.js
import Class1 from './Class1'
export default class Class2 { /* ... */ }
И файл index.js
, который экспортирует оба
// index.js
import Class1 from './Class1'
import Class2 from './Class2'
export default {Class1, Class2}
И я использую веб-пакет для связать их
// webpack.config.js
const path = require('path')
module.exports = {
devtool: 'source-map',
optimization: {
runtimeChunk: true
},
entry: './src/index.js',
output: {
filename: 'my-lib.js',
path: path.resolve(__dirname, 'dist'),
library: 'MyLib'
},
mode: 'development',
target: 'node',
}
// package.json
{
"name": "my-lib",
"version": "0.1.0",
"main": "dist/my-lib.js",
"module": "src/index.js",
"private": true,
"scripts": {
"build": "webpack"
}
}
Однако, когда я пытаюсь использовать их в отдельном проекте:
// MyComponent.js
import {Class2} from 'my-lib'
, я получаю это предупреждение:
WARN in. /MyComponent.js
"Экспорт" Class2 "не найден в" my-lib "
Почему? Он явно экспортируется в файл index.js
. Как можно Я исправляю это? Есть ли даже правильный способ сделать это или мне нужно создавать разные библиотеки для каждого класса, который мне нужен?