[問題] 關於babel處理preset與plugin的順序問題

看板Web_Design作者 (tume209)時間5年前 (2019/11/16 15:00), 5年前編輯推噓0(008)
留言8則, 2人參與, 5年前最新討論串1/1
各位大大好,最近在學習babel設定時,官方說明處理順序會先使用plugin再使用preset,假設設定為下(大概示意) presets : [ "@babel/env" , { useBuiltInt : false } ] plugins : [ "@babel/plugin-transform-runtime" ] 此時要babel的代碼內有class語法,則env會生成的helper函數,而transform-runtime會接著將helper替換為引入runtime庫內的檔案。 但這樣babel處理順序不就變成 先preset → env生成helper 再plugin → 將helper移除,改成引入 這裡是不是怪怪的阿? -- -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.242.32.156 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Web_Design/M.1573887621.A.9A3.html ※ 編輯: tume209 (27.242.32.156 臺灣), 11/16/2019 15:02:56 ※ 編輯: tume209 (27.242.32.156 臺灣), 11/16/2019 15:08:40

11/18 11:58, 5年前 , 1F
雖說 plugin 跟 preset 有載入的順序問題,但是在
11/18 11:58, 1F

11/18 11:59, 5年前 , 2F
plugin 裡也可以指定處理的時間點是要在進入一個
11/18 11:59, 2F

11/18 11:59, 5年前 , 3F
ast node 或是離開的時候,不過最重要的其實是
11/18 11:59, 3F

11/18 12:00, 5年前 , 4F
transform-runtime 設定了一個特殊的選項
11/18 12:00, 4F

11/18 12:00, 5年前 , 5F
helperGenerator 改變了 babel 如何產生那些 helper
11/18 12:00, 5F

11/18 12:01, 5年前 , 6F
所以並不是等到 helper 產生後才去做轉換,而是一開
11/18 12:01, 6F

11/18 12:01, 5年前 , 7F
始就讓它不會被 inline 到檔案裡去
11/18 12:01, 7F

11/19 12:47, 5年前 , 8F
感謝大大說明!
11/19 12:47, 8F
文章代碼(AID): #1Tpvw5cZ (Web_Design)
文章代碼(AID): #1Tpvw5cZ (Web_Design)