如何正确使用节点模块与meteorhacks npm

时间:2015-06-09 17:29:25

标签: node.js meteor

第一次尝试将节点模块与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

将这些东西组合在一起的正确方法是什么?

2 个答案:

答案 0 :(得分:3)

请勿使用npmnode_module个软件包安装为本地npm install

您需要在添加package.json并启动Meteor后创建的名为meteorhacks:npm的特殊文件中指定所需的包。

{
  "multer": "0.1.8"
}

https://github.com/meteorhacks/npm#defining-packages

答案 1 :(得分:1)

您无法在Meteor应用中运行npm install multer

正确的方法是:

  1. meteor add meteorhacks:npm
  2. 在顶级目录中创建文件packages.json,内容为:

    {
      "multer": "0.1.8"
    }
    
  3. 运行meteor,NPM软件包将自动安装

  4. 使用Meteor.npmRequire
  5. 包含npm包

    注意:请务必删除先前npm install创建的node_modules文件夹。