[Webpack 2] Import a non-ES6 module with Webpack

When you have a dependency that does not export itself properly, you can use the exports-loader to force it to export the pieces of the file that you need.

 

Install:

npm i -D exports-loader

 

Add exports-loader to the module you want:

 module: {
      loaders: [
       ...
        {
          test: require.resolve('./src/js/non_node_modules/left-pad'),
          loaders: [
            'exports?leftPad',
          ],
        }
      ],

 

There is no problem, the module still exists on 'window' object, we want it be es6 module which not exists on 'window' object.

Install:

npm i -D imports-loader

Add imports-loader the the module:

    module: {
      loaders: [
        ...
        {
          test: require.resolve('./src/js/non_node_modules/left-pad'),
          loaders: [
            'imports?window=>{}',
            'exports?leftPad',
          ],
        }
      ],
    },

Here it sets 'windows' object to empty object to clean the left-pad module.

 

posted @ 2016-06-25 01:22  Zhentiw  阅读(262)  评论(0)    收藏  举报