0

流星在 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
4

2 回答 2

1

您在项目文件夹中放置的任何内容都被视为 Meteor 应用程序的一部分(/tests文件夹除外)。这包括你安装在里面的 npm 包npm_modules。而且大多数时候,普通的 npm 包并不是设计为在 Meteor 文件结构中工作的,因此它们会到处抛出错误。

npm install package在上层目录中运行,或者npm_modules在结构中手动移动更高层也是一个坏主意。这样,您创建的应用程序只能在您的机器上运行,因为它依赖于特定版本的 npm 包,并且没有说明该依赖关系。您会在部署过程中遇到问题。在 VPS 上,您需要安装相同的软件包,对于 Heroku,您需要自定义 buildpack,等等。

在 Meteor 应用程序中使用 npm 包的正确方法目前是npmmeteorite package。它易于使用,并且在该链接下有据可查。

于 2014-04-08T04:31:39.880 回答
0

我不完全明白为什么,但我不得不将我的 node_modules 移动几个目录才能让它再次工作。我做了一个

npm install stripe

在我的主要流星项目目录中,这显然是一件坏事。我仍然很想听听比我聪明的人说到底发生了什么,以及我最初误解了什么导致了这种情况。

于 2013-09-09T21:20:27.487 回答