Где мы размещаем модули узлов, которые устанавливаем с помощью npm, в проекте Meteor?

Я последовал примеру проекта github meteorirc и поместил их в /public/

Я установил свои модули узлов через npm изнутри /public/, поэтому у меня есть /public/node_modules/ каталог.

Я не думаю, что это «правильное» или «стандартное» место для них, потому что, согласно документации Meteor...

Meteor собирает все ваши файлы JavaScript, исключая все, что находится под клиентские и общедоступные подкаталоги и загружает их на сервер Node.js. экземпляр внутри волокна

Код для загрузки находится в каталоге сервера и в файлах сервера 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');
}

Судя по документам, это нестандартно, и я не думаю, что должен делать это таким образом. Тем не менее, он работает как на моей платформе разработки, так и в продакшене на deploy meteor.com.

Где в структуре каталогов проекта должны быть установлены модули узлов, чтобы они работали локально и при развертывании на сайте meteor.com или в другом месте?

10
задан Colm Sloan 21 May 2012 в 22:49
поделиться