2
當前代碼/config/index.js
我應該如何加載我自己模塊中的文件?
const options = (require('js-yaml')).safeLoad(
(require('fs')).readFileSync(`./config/default-config.yaml`, "utf8"));
module.exports = options;
工作正常。直到我發佈並在我的其他項目中使用它。然後它無法找到該文件(自然),因爲該項目中不存在./config/default-config.yaml
。
我能想到的唯一選擇是檢查文件是否存在於該路徑,然後嘗試從node_modules/@company/alpha-gamma/config/default-config.yaml
加載它。這看起來很詭異。
配置對象很大,200多個鍵。我不認爲它屬於代碼。
加載模塊中存在的文件的最佳解決方案是什麼?我需要能夠在發佈之前加載它進行單元測試,並在另一個模塊需要庫時在運行時加載它。
也許最好的選擇是使用json
,因爲我可以再使用require
模塊加載它,而不是fs
。
我本來打算指向你這個 - 似乎相似。 https://stackoverflow.com/questions/13051961/proper-way-to-reference-files-relative-to-application-root-in-node-js –
不知道爲什麼,但'__dirname'似乎總是像對我來說是個詭計 - 就像他們想要在幾年前消除的東西 – jcollum
我並不完全不同意這一點。我很驚訝,我沒有立即發現這個話題。 –