Я следил за проектом проекта github meteorirc и помещал их в /public/
Я установил свои модули node через npm изнутри /public/, и поэтому у меня есть каталог /public/ node_modules/.
Я не думаю, что это "правильное" или "стандартное" место для них, потому что согласно документам Meteor...
Meteor собирает все ваши файлы JavaScript, за исключением клиентских и общедоступных подкаталогов и загружает их на сервер Node.js экземпляр внутри волокна
Код для загрузки находится в файлах dir и server сервера js и выглядит следующим образом.
var require = __meteor_bootstrap__.require;
var path = require("path");
var fs = require('fs');
var base = path.resolve('.');
if (base == '/'){
base = path.dirname(global.require.main.filename);
}
var Twit;
var twitPath = 'node_modules/twit';
var publicTwitPath = path.resolve(base+'/public/'+twitPath);
var staticTwitPath = path.resolve(base+'/static/'+twitPath);
if (path.existsSync(publicTwitPath)){
Twit = require(publicTwitPath);
}
else if (path.existsSync(staticTwitPath)){
Twit = require(staticTwitPath);
}
else{
console.log('WARNING Twit not loaded. Node_modules not found');
}
Основываясь на документах, это не стандарт, и я не думаю, что я должен делать это таким образом. Тем не менее, он работает как на моей платформе dev, так и в производстве при развертывании meteor.com.
Где в структуре каталогов проекта должны быть установлены модули node, чтобы они работали локально и после развертывания на meteor.com или в другом месте?