將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
可能是最佳選擇。