![](/img/trans.png)
[英]How do I configure Typescript React App created with create-react-app to emit the files to particular directory with yarn start (dev mode)
[英]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 上運行良好。
於是,我嘗試定制browserlist
中package.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.