webpack:如何在node_modules中编译代码

时间:2019-09-17 06:20:47

标签: javascript webpack babeljs

我想在使用Typescript和Webpack转换为ES5的Web应用程序中导入nano-memoize

  • npm install nano-memoize
  • import 'nano-memoize/browser/nano-memoize'添加到源文件中。

这些步骤在IE 11中不起作用。该页面根本无法加载。

在IE 11开发人员控制台中检查nano-momoize / browser / nano-memoize.js的代码时,我注意到它使用了箭头功能。如果我直接将nano-memoize / browser / nano-memoize.js复制到我的源文件夹中,它们将被转换为ES5,并且一切也将在IE 11中正常工作。

那么为什么nano-memoize / browser / nano-memoize.js没有被编译?

构建设置:

webpack                   : ^4.40.2,
@babel/core               : ^7.4.0,
awesome-typescript-loader : ^5.2.1,

更新
这是一个webpack配置问题,其中node_modules从编译中排除。骨架设置是由脚本创建的,我不好,我从来没有检查过。 bapack-loader的webpack.config.js中的以下内容可以有选择地编译所需的node_modules。替换为所需的模块名称。

{
  test: /\.js$/,
  exclude: function(modulePath) {
    return /node_modules/.test(modulePath) &&
        !/node_modules\/<MY_MODULE>/.test(modulePath);
  }
}

1 个答案:

答案 0 :(得分:0)

在您的项目中使用polyfills尝试一下,下面是要导入到index.html文件中的脚本标记  <script src="https://cdn.polyfill.io/v3/polyfill.min.js"></script>