各位大大、大神、前輩您們好,我想請問 Import 使用絕對路徑的時候,是否能自定義變數呢?
更新目前有解了
- tsconfig.json 設定 “baseUrl”: “./”
- 建隨便一個ts檔,並宣告:
declare module “公司名稱/共用模組” {
export * from “modules/共用模組”;
}
以上即可將 路徑中的 ‘公司名稱’ 被 ‘modules’ 這個真正的路徑取代。
例如:
import { A_Service } from " myVar / A ";
上面路徑中的 myVar ,是否能設定成一個可更改的變數呢?。
像是換成字串 const myVar = " …/myPath " ,實際讀取路徑就變成 " …/myPath/A "
有這需求主要是因為公司開發平台上,有很多服務必須寫死一個在我讀取不到的路徑上。
比如 import { A_Service } from " 公司平台/A"
但是在本地的開發端,並沒有 “公司平台” 這個路徑,所以 Webstrom(或其他IDE)會找不到這個路徑模組。
更實際的狀況就如以下這樣:
我寫了一個公用模組功能 publicComponent ,裡面有很多服務 ServiceA , ServiceB , ServiceC…
而實際的目錄長這樣
—src
------modules
---------modules-public
---------modules-x
---------modules-y
---------modules-z
在模組 modules-x , y ,z 裡面,會去用到 modules-public 的服務 Service A,B,C
但因為最後模組都會上傳到公司平台上做轉換,規定了 引用這些服務的路徑會寫死:
import { ServiceA ,ServiceB } from " 公司平台名稱 / modules-public ";
而實際路徑其實是 "modules / modules-public "
所以IDE會報錯,雖然最後上傳平台可以跑,但是就白白浪費IDE很多自檢與索引的服務,開發很不好用。
所以我想是不是能去定義我本地開發端,能夠辨認在 import 的時候,
如果有出現 “公司平台名稱”, 就將其轉換為 “modules” 。
不知道是否能做到這件事情呢,還望給我點建議或提示,非常感謝。
如果有不詳細的地方,也請和我說下,我盡量補全。 m(_ _)m