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

本文介绍如何通过使用exports-loader和imports-loader来解决依赖模块导出不当的问题,使模块能够正常运行且不污染全局变量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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.

 

转载于:https://www.cnblogs.com/Answer1215/p/5615671.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值