如何正确使用节点模块与meteornpm
第一次尝试使用meteor节点模块
安装:
meteor add meteorhacks:npm
然后安装:
npm install multer
在服务器目录中有一个单独的文件,名为“loadMulter”,只有这一行:
var multer = Meteor.npmRequire('multer');
现在,运行“meteor”,并得到这个错误:
W20150609-12:22:56.528(-5)? (STDERR) W20150609-12:22:56.528(-5)? (STDERR) /home/eugene/.meteor/packages/meteor-tool/.1.1.3.4sddkj++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/server-lib/node_modules/fibers/future.js:245 W20150609-12:22:56.529(-5)? (STDERR) throw(ex); W20150609-12:22:56.529(-5)? (STDERR) ^ W20150609-12:22:56.531(-5)? (STDERR) ReferenceError: require is not defined W20150609-12:22:56.531(-5)? (STDERR) at app/node_modules/multer/node_modules/busboy/node_modules/dicer/node_modules/streamsearch/lib/sbmh.js:5:20 W20150609-12:22:56.531(-5)? (STDERR) at app/node_modules/multer/node_modules/busboy/node_modules/dicer/node_modules/streamsearch/lib/sbmh.js:215:3 W20150609-12:22:56.531(-5)? (STDERR) at /home/eugene/dev/meteor/socially/.meteor/local/build/programs/server/boot.js:222:10 W20150609-12:22:56.531(-5)? (STDERR) at Array.forEach (native) W20150609-12:22:56.532(-5)? (STDERR) at Function._.each._.forEach (/home/eugene/.meteor/packages/meteor-tool/.1.1.3.4sddkj++os.linux.x86_64+web.browser+web.cordova/mt-os.linux.x86_64/dev_bundle/server-lib/node_modules/underscore/underscore.js:79:11) W20150609-12:22:56.532(-5)? (STDERR) at /home/eugene/dev/meteor/socially/.meteor/local/build/programs/server/boot.js:117:5
把这些东西放在一起的正确方法是什么?
不要使用npm install
将npm
软件包安装为本地node_module
。
您需要在添加meteorhacks:npm
之后创build的名为package.json
的特殊文件中指定所需的包meteorhacks:npm
并启动Meteor。
{ "multer": "0.1.8" }
您不能在Meteor应用程序中运行npm install multer
。
正确的方法是:
-
meteor add meteorhacks:npm
-
在顶级目录中创build带有内容的文件
packages.json
:{ "multer": "0.1.8" }
-
运行
meteor
,NPM软件包将被自动安装 - 使用
Meteor.npmRequire
包含npm包
注意:一定要删除以前的npm install
创build的node_modules文件夹。