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