将node_modules中的特定包转译为es5
P粉481366803
2023-08-17 21:55:01
<p>我正在制作一个Angular 12(兼容IE)项目,其中我在node_modules中的一些依赖项是非es5的。</p>
<p>在我理解中,<code>tsc</code>不会对node_modules做任何处理,只会从<code>angular.json</code>中的<code>main</code>选项开始评估。</p>
<p>在寻找如何做到这一点的选项时,我看到很多建议使用babel,但我不确定</p>
<ol>
<li><p>我是否应该将babel与tsc混合使用。
或者我废除<code>tsc</code>,只通过custom-webpack使用babel?</p>
</li>
<li><p>据我所了解,在所有的转译中,转译后的代码都会进入一个输出目录,但由于我需要转译node_modules中的js文件,所以这些文件的输出应该只是替换它们在node_modules中的原始文件?我们如何实现这一点?</p>
</li>
</ol><p><br /></p>
您可以在tsconfig中的
include
中添加特定的覆盖。但是当您为客户端打包时,通常不会将依赖项作为单独的脚本包含在内,而是让打包工具决定将它们放在何处。您没有提到您当前使用的打包工具,但是如果您设置了
allowJS: true
,则不需要Babel - 例如,对于Webpack配置的相关更改将是:但是,如果您想要自动填充,使用带有Browserslist字符串的
@babel/preset-env
可能是最佳选择。