expose-loader: Options missing in third-party loader

  • Operating System: macos 10.15.6
  • Node Version: v12.18.3
  • NPM Version: 6.14.6
  • webpack Version: 4.44.1
  • expose-loader Version: 1.0.0

Expected Behavior

Third-party loader (fest-webpack-loader in example) is receive options.

Actual Behavior

When expose-loader is used options are just an empty object.

Code

https://gist.github.com/ogonkov/0ca19648bebabf8ce2d3cfbb5a82b5e0

How Do We Reproduce?

npm run build -- --mode=development index.js

test.xml is compiled without options to ES module. When expose-loader removed from rule, it compiled to CJS as expected. If insert console.log to fest-webpack-loader it’s clear that it receive {} instead of loader options.

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Comments: 34 (18 by maintainers)

Most upvoted comments

You need webpack v5 to use latest version of this loader

Where i should do it?

(this one don’t work)

module.exports = {
    devtool: false,
    module: {
        rules: [
            {
                test: /\.js$/,
                exclude: /node_modules/,
                use: [
                    {
                        loader: 'expose-loader',
                        options: {
                            exposes: 'fest.app'
                        }
                    },
                    {
                        loader: 'babel-loader',
                        options: {
                            "presets": [
                                "@babel/preset-env",
                                "@babel/preset-react"
                            ]
                        }
                    }
                ]
            }
        ]
    }
};

When expose-loader part is commented it works again.