[英]Cannot find module - relative paths
我寫了一個非常簡單的本地模塊來管理幾行本地化文本。 它使用node的require
來加載語言文件,但我很可能遇到路徑問題。 我收到了Cannot find module
錯誤。
.
+-- local_modules
| +-- lang
| | +-- package.json
| | +-- index.js
+-- locale
| +-- en.js
| +-- de.coffee
+-- init.js
+-- index.coffee
+-- package.json
如果文件尚未加載,則require
該文件。
join = require('path').join;
_config.path = './locale';
lang = 'en';
_locales = {};
if(!_locales[lang]){
_locales[lang] = require(join(_config.path, lang));
}
locale
目錄中的每個文件都是典型的Node.js模塊,例如en.js
:
module.exports = {
test: 'Hello World!'
};
本地模塊導出一個function(req, res, next){}
,它用作Express中間件,並且應該將帶有本地化字符串的所需對象附加到res.locals
,但是,我看到Cannot find module 'locale/en'
錯誤。
我試圖手動添加.js
擴展名(但據我所知,這不應該是必要的)。 我還嘗試了路徑上的不同變體,例如locale
或/locale
。
該模塊在index.coffee
中index.coffee
。
應用程序使用init.js
啟動,其中包含以下內容:
require('coffee-script/register');
require('./index');
也許只是模塊是一個.js
(並且模塊本身沒有CoffeeScript作為依賴項)所以它無法加載.coffee
文件? 雖然CoffeeScript應該在全球注冊,或者我錯了? 無論哪種方式,它也不能與.js
文件一起使用,所以我猜它與路徑有關。
path.join()
還規范化創建的路徑,這可能意味着./
部分總是被刪除,剩下的是相對路徑。
相反,當使用path.resolve()
時,它會創建一個絕對路徑,這是本例所需的路徑。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.