我的流星/陨石包裹有什么问题“需要没有定义”?

时间:2013-09-09 20:36:54

标签: meteor

流星在0.6.5之前工作,但自从我更新后就停止了工作。什么会导致这个错误?请注意,我所拥有的是最新的条纹,光纤和流星。

> npm ls stripe
/path/to/project
└── stripe@1.3.0 

> npm -g ls fibers
/usr/local/lib
└── fibers@1.0.1 

> meteor --version
Release 0.6.5.1

> meteor
[[[[[ /path/to/project ]]]]]

=> Meteor server running on: http://localhost:3000/
W20130909-13:34:19.787(-7)? (STDERR) /Users/pabo/.meteor/tools/3cba50c44a/lib/node_modules/fibers/future.js:173
W20130909-13:34:19.867(-7)? (STDERR)                        throw(ex);
W20130909-13:34:19.867(-7)? (STDERR)                              ^
W20130909-13:34:19.868(-7)? (STDERR) ReferenceError: require is not defined
W20130909-13:34:19.868(-7)? (STDERR)     at app/node_modules/stripe/test/charges.js:1:47
W20130909-13:34:19.868(-7)? (STDERR)     at app/node_modules/stripe/test/charges.js:65:3
W20130909-13:34:19.868(-7)? (STDERR)     at mains (/path/to/project/.meteor/local/build/programs/server/boot.js:153:10)
W20130909-13:34:19.868(-7)? (STDERR)     at Array.forEach (native)
W20130909-13:34:19.869(-7)? (STDERR)     at Function._.each._.forEach (/Users/pabo/.meteor/tools/3cba50c44a/lib/node_modules/underscore/underscore.js:79:11)
W20130909-13:34:19.869(-7)? (STDERR)     at /path/to/project/.meteor/local/build/programs/server/boot.js:80:5
=> Exited with code: 1

2 个答案:

答案 0 :(得分:1)

您放置在项目文件夹中的任何内容都被视为Meteor应用程序的一部分(/tests文件夹除外)。这包括您在npm_modules内安装的npm包。大多数情况下,普通的npm软件包不能在Meteor文件结构中工作,因此它们会在整个地方抛出错误。

在上层目录中运行npm install package,或者在结构中手动移动npm_modules也是个坏主意。这样你就可以创建一个只能在你的机器上运行的应用程序,因为它取决于npm软件包的特定版本,而且这种依赖性没有说明。您将在部署期间遇到问题。在VPS上你需要安装相同的软件包,对于Heroku你需要一个自定义的buildpack,依此类推。

目前在Meteor app中使用npm包的正确方法是npm meteorite package。它易于使用,并在该链接下有详细记录。

答案 1 :(得分:0)

我不完全理解为什么,但我不得不将我的node_modules移动到几个目录以使其再次运行。我做了一个

npm install stripe

在我的主要流星项目目录中,这显然是一件坏事。我仍然希望听到比我更聪明的人关于究竟发生了什么,以及我最初误解的原因是什么。