Neverending Pile of Messages
    Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    expose-loaderpublic

    npm deps chat

    Expose Loader

    The expose loader adds modules to the global object. This is useful for debugging, or supporting libraries that depend on libraries in globals.

    Install

    npm i expose-loader --save

    Usage

    Note: Modules must be require()'d within in your bundle, or they will not be exposed.

    require("expose-loader?libraryName!./file.js");
    // Exposes the exports for file.js to the global context on property "libraryName".
    // In web browsers, window.libraryName is then available.

    For example, let's say you want to expose jQuery as a global called $:

    require("expose-loader?$!jquery");

    Thus, window.$ is then available in the browser console.

    Alternately, you can set this in your config file:

    webpack v1 usage

    module: {
      loaders: [
        { test: require.resolve("jquery"), loader: "expose-loader?$" }
      ]
    }

    webpack v2 usage

    module: {
      rules: [{
              test: require.resolve('jquery'),
              use: [{
                  loader: 'expose-loader',
                  options: '$'
              }]
          }]
    }

    Let's say you also want to expose it as window.jQuery in addition to window.$. For multiple expose you can use ! in loader string:

    webpack v1 usage

    module: {
      loaders: [
        { test: require.resolve("jquery"), loader: "expose-loader?$!expose-loader?jQuery" },
      ]
    }

    webpack v2 usage

    module: {
      rules: [{
              test: require.resolve('jquery'),
              use: [{
                  loader: 'expose-loader',
                  options: 'jQuery'
              },{
                  loader: 'expose-loader',
                  options: '$'
              }]
          }]
    }

    The require.resolve is a Node.js call (unrelated to require.resolve in webpack processing). require.resolve gives you the absolute path to the module ("/.../app/node_modules/react/react.js"). So the expose only applies to the react module. And it's only exposed when used in the bundle.

    Maintainers


    Juho Vepsäläinen

    Joshua Wiens

    Kees Kluskens

    Sean Larkin

    Keywords

    none

    install

    npm i expose-loader

    Downloadslast 7 days

    202,974

    version

    0.7.5

    license

    MIT

    repository

    github.com

    last publish

    collaborators

    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar
    • avatar