【问题标题】:Recommended way to use node.js modules with meteor将 node.js 模块与流星一起使用的推荐方法
【发布时间】:2013-01-11 22:37:38
【问题描述】:

谁能告诉我推荐的使用 node.js 包的方法是什么?

有人推荐的一种方法是:

    % cd myapp/.meteor/local/build/server/
    % npm install aws-lib
    npm http GET https://registry.npmjs.org/aws-lib
    npm http 304 https://registry.npmjs.org/aws-lib
    npm ERR! Could not create /home/user/myapp/.meteor/local/build/server/node_modules/___aws-lib.npm

这会失败,因为 myapp/.meteor/local/build/server/node_modules 符号链接到 /usr/lib/meteor/lib/node_modules/。

我想在本地安装它有几个原因。我希望它是可移植的,如果我将应用程序部署到其他地方,我希望所有依赖项都与它一起旅行。我不想以 root 身份执行此操作。将这样的东西安装到 /usr/lib/meteor 中似乎是错误的。

【问题讨论】:

  • 符号链接是用“meteor create myapp”创建的,我没有手动创建。

标签: node.js meteor npm


【解决方案1】:
  1. 首先,meteor bundle bundle.tar.gz 获取您的应用的 node-deployable 包。
  2. tar -xvf bundle.tar.gzcd bundle
  3. 在包的server 目录中有一个node_modules 目录。
  4. cd server & npm install aws-lib

这是一个可部署的软件包。拨打node bundle/main.js启动它。

要实际使用该模块,您必须致电__meteor_bootstrap__.require

查看此内容以获得更详细的解决方案! https://stackoverflow.com/a/12730509/1757994

或者,您可以将node 模块包装为包含模块代码和__meteor_bootstrap__.require 行的包。这是简单垫片的一个很好的例子:

https://github.com/tmeasday/meteor-page-js

这是一个围绕节点模块的垫片示例:

https://github.com/possibilities/meteor-awssum

我怀疑这是你最开始想要的包...

【讨论】:

  • 我看到的问题是您将 node_modules 目录与流星安装的 node_modules 目录断开连接。当流星更新时,如果没有人工干预,应用程序将无法获得更新。这似乎不是一个好的长期解决方案,也许这是唯一的解决方案?有没有类似模块的搜索路径,这样meteor 的模块可以在搜索路径上,然后在运行meteor bundle 时全部合并到一个目录中?
  • 我建议制作一个 Meteor 包,然后填充您要使用的节点模块。
猜你喜欢
  • 2013-02-11
  • 2019-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-20
  • 2014-11-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多