[英]Best way to load modules node.js
我的項目有很多文件夾,我經常通過以下方式將自己的模塊加載到node.js中:
var request = require("request"),
config = require("../../../modules/config"),
urls = require("../../../modules/urls");
有時我會移動文件夾並更改路徑,因此我需要手動調整../
零件。
我不想將模塊移動到node_modules文件夾中,但是我想通過以下方式加載模塊:
var request = require("request"),
config = require("config"),
urls = require("urls");
要么
var request = require("request"),
config = require("modules/config"),
urls = require("modules/urls");
我有什么選擇?
新答案:
畢竟,相對路徑似乎是最簡單的選擇,它允許您從任何位置運行腳本。
var config = require("../../config");
舊答案:
我發現,雖然不理想,但也可以使用process.cwd()
。
var request = require("request"),
config = require(process.cwd() + "/modules/config");
或者,如果將process.cwd()設置為主js文件中的全局變量
global.cwd = process.cwd();
然后
var request = require("request"),
config = require(global.cwd + "/modules/config"),
urls = require(global.cwd + "/modules/urls");
您可以根據某些情況嘗試執行以下操作
modules
目錄下,並嘗試創建公開變量,例如global.basepath
並使用path.join
來構造文件路徑並要求它。您還可以在應用程序的主腳本中要求它們之后注入模塊變量。 main.js
var config = require('modules/config.js')(_,mongoose,app);
modules/config.js
module.exports=function(_,mongoose,app){
return function(){
// _,mongoose,app
this.loadConfigVariable..
}
}
express
,也有一些express
用途的模塊,例如express-validation
,這些模塊又具有自己的依賴性。 您可以在node_modules
添加一個符號鏈接,以指向模塊所在的位置。
例如,添加一個名為“ my_modules”的符號鏈接,引用“ ../foo/bar/my_modules”。 然后,您的需求將看起來像
var config = require('my_modules/config');
var urls = require('my_modules/urls');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.