javascript - webpack:如何在 node_modules 中转换代码
问题描述
我想在使用 Typescript 和 Webpack 转换为 ES5 的 Web 应用程序中导入nano-memoize 。
npm install nano-memoize
- 添加
import 'nano-memoize/browser/nano-memoize'
到源文件。
这些步骤在 IE 11 中不起作用。页面根本无法加载。
在 IE 11 开发者控制台中检查 nano-memoize/browser/nano-memoize.js 的代码时,我注意到它使用了箭头函数。如果我将 nano-memoize/browser/nano-memoize.js 直接复制到我的源文件夹,它们会被转译为 ES5,并且一切都在 IE 11 中运行。
那么为什么 nano-memoize/browser/nano-memoize.js 没有被转译呢?
构建设置:
网络包:^4.40.2, @babel/核心:^7.4.0, 真棒打字稿加载器:^5.2.1,
更新:
这是一个 webpack 配置问题,其中 node_modules 被排除在编译之外。骨架设置是由脚本创建的,我的错误是我从不检查这个。webpack.config.js 中的以下内容用于 babel-loader 可以选择性地编译所需的 node_modules。替换为所需的模块名称。
{
test: /\.js$/,
exclude: function(modulePath) {
return /node_modules/.test(modulePath) &&
!/node_modules\/<MY_MODULE>/.test(modulePath);
}
}
解决方案
在您的项目中使用 polyfill 尝试一下,下面是要在 index.html 文件中导入的脚本标签
<script src="https://cdn.polyfill.io/v3/polyfill.min.js"></script>
推荐阅读
- tensorflow - 冻结我的 keras 模型图时出现 AssertionError
- r - kableExtra:垂直对齐在包含多列的 PDF 输出中不起作用
- json - Dart:无法转换列表
列出 - python - 批量创建所需的事务原子?
- sql - 如何为具有先前值的空值提供标签
- r - 用 Rcpp 更慢地优化 R 目标函数,为什么?
- apache-spark - Kubernetes 集群上的 SparkApplication YAML 文件存储在哪里?
- bash - grep 查找包含“.”的文件中的确切单词
- apache-spark - 如何合并 HDFS 中的分区?
- ios - 如何在 swift 中使用谷歌地图 SDK 导航当前位置的车辆图标?