Как экспортировать несколько классов в одну библиотеку в Javascript? - PullRequest
0 голосов
/ 03 апреля 2020

У меня есть два 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. Как можно Я исправляю это? Есть ли даже правильный способ сделать это или мне нужно создавать разные библиотеки для каждого класса, который мне нужен?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...