为什么webpack在需要其输出时会返回一个空对象?

时间:2019-01-30 07:00:12

标签: javascript webpack ecmascript-6

我试图捆绑我的项目,然后要求捆绑的缩小输出。
我的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 :(得分:1)

如果您要构建一个供Node_modules使用的库,则需要告知Webpack您要支持Models(简单来说,就是希望您的使用者从umd中使用它。或从'yinon_lib'`导入..)。

方法是:

require(yinon_lib)

更多信息:

示例:

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