2017-08-22 61 views
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

+0

我本來打算指向你這個 - 似乎相似。 https://stackoverflow.com/questions/13051961/proper-way-to-reference-files-relative-to-application-root-in-node-js –

+0

不知道爲什麼,但'__dirname'似乎總是像對我來說是個詭計 - 就像他們想要在幾年前消除的東西 – jcollum

+1

我並不完全不同意這一點。我很驚訝,我沒有立即發現這個話題。 –

回答

相關問題