Не экспортируется класс(модуль)

Файл модуля:

import typeIs from './helpers/typeIs';

/**
 * @description Class of checking and throwing a custom exception.
 */
export default class Inspector {
// Some code
}

В package.json указал путь к файлу:

{
// ....
"main": "dist/app.js",
// ...
}

Устанавливаю пакет локально командой npm install ../ДИРЕКТОРИЯ ПАКЕТА/. Всё устанавливается, но консолю модуль, а там {}. В чём может быть проблема?

UPD

Возвращает пустой объект именно в минифицированном файле(dist/app.js). А если подключить исходник - работает.

.babelrc:

{
  "presets": ["@babel/preset-env"],

  "env": {
    "test": {
      "plugins": ["transform-es2015-modules-commonjs"]
    }
  }
}

package.json:

  "devDependencies": {
    "@babel/core": "^7.10.5",
    "@babel/preset-env": "^7.10.4",
    "babel-eslint": "^10.1.0",
    "babel-jest": "^26.1.0",
    "babel-loader": "^8.1.0",
    "babel-plugin-transform-es2015-modules-commonjs": "^6.26.2",
    "clean-webpack-plugin": "^3.0.0",
    "cross-env": "^7.0.2",
    "eslint": "^7.5.0",
    "eslint-config-google": "^0.14.0",
    "eslint-loader": "^4.0.2",
    "jest": "^26.1.0",
    "webpack": "^4.44.0",
    "webpack-cli": "^3.3.12"
  },
  "browserslist": "> 0.25%, not dead",
  "dependencies": {
    "@babel/polyfill": "^7.10.4"
  }

UPD 2

Сам пакет: https://github.com/doox911/inspector

UPD 3

Проверяю так:

const Inspector = require('inspector-with-exceptions');

console.dir(Inspector);

Ответы (1 шт):

Автор решения: doox911

Так как Webpack по умолчанию не подразумевает создание пакета(библиотеки), то это необходимо указать в файле конфигурации. Указывается это свойствами output.library и output.libraryTarget. Правильный файл конфигурации:

const PATH = require('path');

// Автоочистка dist
const {CleanWebpackPlugin} = require('clean-webpack-plugin');

// Наименование итоговых файлов в dist
const APPLICATION_FILE_NAME = 'app';
const IS_PRODUCTION = process.env.NODE_ENV === 'production';
const IS_DEVELOPMENT = !IS_PRODUCTION;

/**
 * Получить имя файла
 *
 * @param {string} exception
 * @return {string}
 */
const getFileName = exception => {
  return APPLICATION_FILE_NAME + '.' + exception;
};

/**
 * Установить loaders
 *
 * @description Влючая ESLint
 * @return {[{loader: string, options: {presets: [string]}}]}
 */
const getLoaders = () => {
  const loaders = [
    {
      loader: 'babel-loader',
      options: {
        presets: ['@babel/preset-env'],
      },
    },
  ];

  if (IS_DEVELOPMENT) {
    loaders.push('eslint-loader');
  }

  return loaders;
};

module.exports = {

  // Все исходники
  context: PATH.resolve(__dirname, 'src'),

  // Режим по умолчанию
  mode: 'development',

  // Входные точки для приложения
  entry: ['@babel/polyfill', './index.js'],
  output: {
    filename: getFileName('js'),
    path: PATH.resolve(__dirname, 'dist'),

    // Имя пакета
    library: 'Inspector',
    // Параметры экспорта
    libraryTarget: 'commonjs2',
  },
  plugins: [
    new CleanWebpackPlugin,
  ],
  module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /node_modules/,
        use: getLoaders(),
      },
    ],
  },
};
→ Ссылка