在我的 node TypeScript 專案中,我有一個帶有一些默認配置的 json 檔案。假設它看起來像這樣:
{
prop1: 123,
prop2: 123
}
我正在從這個檔案的某個地方加載值,如下所示:
import * as defconfig from '../configuration/config.json';
當我在控制臺中檢查它時,我看到了這個輸出:
{
prop1: [Getter],
prop2: [Getter],
default: {
prop1: 123,
prop2: 123
}
}
而且,如果我嘗試使用擴展運算子或 Object.assign 覆寫此物件,結果如下:
const options = {
prop1: 321,
prop2: 321
};
console.log({...defconfig, ...options});
//OR
console.log(Object.assign(defconfing, options));
//produces
{
prop1: 321,
prop2: 321,
default: {
prop1: 123,
prop2: 123
}
}
任何人都可以解釋默認值來自哪里以及如何擺脫它?
當不使用 .json 檔案但使用普通物件定義配置時,相同的代碼作業得很好,但問題是我必須使用該檔案。
uj5u.com熱心網友回復:
根據最新的節點版本,JSON 檔案不能直接作為模塊讀取。除非您--experimental-json-modules在運行時使用標志。
一種解決方案是使用 commonjs(為此您需要將檔案擴展名更改為 .cjs)方法require,該方法將能夠完成任務,或者您可以使用fs模塊來讀取 JSON 字串然后進行決議。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/315193.html
標籤:javascript 节点.js 打字稿
