Почему webpack возвращает пустой объект, когда требуется его вывод? - PullRequest
0 голосов
/ 30 января 2019

Я пытаюсь связать свой проект и затем требовать минимизированного вывода.
Мой файл index.js выглядит следующим образом:

const browserHost = require('./hosts/browserHost')
const workerHost = require('./hosts/workerHost')
module.exports = {
    initBrowserHost: options => browserHost.init(options),
    initWorkerHost: options => workerHost.init(options)
}

Когда мне это требуется, у меня есть две функции инициализации.Когда я связываю свой проект с webpack и требую index.min.js, у меня есть пустой объект.
Конфигурация Webpack:

const TerserPlugin = require('terser-webpack-plugin')
const path = require('path')

module.exports = {
    module: {
        rules: [
            {
                test: /\.js$/,
                exclude: [
                    /node_modules/,
                    /\.unit\.js$/
                ],
                use: ['babel-loader']
            }
        ]
    },
    node: {
        fs: 'empty',
        dns: 'empty'
    },
    target: 'node',
    entry: [
        './src/index.js'
    ],
    output: {
        path: path.join(__dirname, 'dist'),
        filename: 'index.min.js'
    },
    optimization: {
        minimizer: [
            new TerserPlugin({
                parallel: true,
                terserOptions: {
                    ecma: 6
                }
            })
        ]
    }
}

Что я делаю не так?

1 Ответ

0 голосов
/ 10 мая 2019

В случае, если вы создаете библиотеку, которую другие могут использовать из node_modules, вы должны указать веб-пакету, что вы хотите поддерживать umd (простыми словами, вы хотите, чтобы ваши потребители использовали его из require(yinon_lib) или импортировали ..от 'yinon_lib'`).

Способ сделать это:

output: {
      ...
      libraryTarget: 'umd', 
    },

Дополнительная информация:

Пример:

https://github.com/stavalfi/lerna-yarn-workspaces-example/tree/master/packages/x-core

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