簡體   English   中英

在開發模式下使用 Create-React-App 配置 TypeScript 目標

[英]Configure TypeScript target with Create-React-App in development mode

tldr; 如何配置我的 CRA 項目,以便yarn start產生與舊瀏覽器兼容的構建?

不確定我做錯了什么,但我本質上是在 CRA 中使用 TypeScript,並希望在較舊的 Chrome 上運行開發版本。 准確地說,它是在智能電視上運行的 Chrome 53。 由於我正在開發一個在電視上運行的應用程序,並希望在我可用的應用程序上進行測試,因此運行與該電視兼容的構建版本至關重要。

當我在電視上運行當前的開發版本時,瀏覽器抱怨語法錯誤。 可能是因為構建中包含的高級 JS 功能(箭頭函數、const 等)。

所以我做的第一件事是更新tsconfig.json以定位es3而不是它當前所在的位置: es5 我沒想到這會有所作為,因為 ES5 顯然應該在 Chrome 53 上運行良好。

於是,我嘗試定制browserlistpackage.json以包含版Chrome瀏覽器,甚至是復制生產環境的開發者,但無濟於事。 當我檢查桌面上生成的 JavaScript 時,它仍然包含 ES6 功能。

顯然,我非常不熟悉 TypeScript 和 CRA(聽 Babel)如何協同工作。 我試圖檢查 CRA 的源代碼,並彈出應用程序以解釋我的嘗試不起作用,但我迷路了。

(請注意,該項目是幾天前根據 CRA 的 TypeScript 模板創建的,因此它確實是最新的。)

好吧,事實證明問題比看起來容易。 修改package.json后需要清除 NPM 緩存。 我承認我沒有注意到文檔中提到了這一點。

編輯browserslist配置時,您可能會注意到您的更改不會立即生效。 這是由於babel-loader一個問題沒有檢測到package.json的變化。 一個快速的解決方案是刪除node_modules/.cache文件夾node_modules/.cache試。

支持的瀏覽器

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM