【发布时间】:2012-05-22 05:03:44
【问题描述】:
我按照 github meteorirc 项目的引导,把它们放在 /public/ 中
我通过 npm 从 /public/ 内部安装了我的节点模块,因此我有一个 /public/node_modules/ 目录。
我不认为这对他们来说是“适当”或“标准”的地方,因为根据 Meteor 文档...
Meteor 会收集您的所有 JavaScript 文件,不包括 client 和 public 子目录,并将它们加载到 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');
}
根据文档,这不是标准的,我认为我不应该这样做。然而,它既适用于我的开发平台,也适用于 deploymeteor.com 的生产环境。
节点模块应该安装在项目目录结构的哪个位置,以便它们在本地工作以及在meteor.com或其他地方部署时工作?
【问题讨论】:
标签: javascript meteor