我们如何或可以通过 npm 将节点模块与 Meteor 一起使用?

新手上路,请多包涵

我们如何或可以通过 npm 将节点模块与 Meteor 一起使用?

还是那会依赖于包装 API

或者有推荐的规定方法吗?

原文由 Steeve Cannon 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 254
2 个回答

Meteor 1.3 于 2016 年 3 月 28 日发布,为应用程序提供完整的 ES6 (ES2015) 模块支持和开箱即用的 NPM 支持。应用程序和包现在可以在客户端和服务器上直接轻松地加载 NPM 模块。

如果可以使用 1.3,请检查 http://guide.meteor.com/using-packages.html#installing-npm

例如,要使用 moment.js:

 meteor npm install --save moment

然后在你的代码中:

 import moment from 'moment';

// this is equivalent to the standard node require:
const moment = require('moment');

如果您需要使用旧版本的 Meteor,请阅读下面的其余答案。


流星 1.3 之前

从 v0.6.0 开始,Meteor 在第 3 方包的帮助下直接与 NPM 模块集成。例如,要使用像 ws 这样的模块,

  1. 运行 sudo npm install -g ws (或对于本地安装,请参阅
  2. 在您的服务器 JavaScript 文件中,
    var Websocket = Npm.require('ws');
   var myws = new Websocket('url');

要使用核心节点模块,只需进行相应的 Npm.require() 调用,例如 var Readable = Npm.require('stream').Readable


得益于 Arunoda 开发的 NPM 包,您可以直接在 Meteor 中使用超过 230,000 个 NPM 模块 中的任何一个。

您还可以从智能包中定义对 Npm 包的依赖性——从 npm 支持 的最初公告开始

您的智能包现在可以直接定义依赖项,方法是在 package.js 中添加对 Npm.depends 的调用:

 Npm.depends({
  "awssum": "0.12.2",
  "underscore.string": "2.3.1"
});

所有这些都适用于热代码重新加载,就像 Meteor 的其余部分一样。当您进行更改时,捆绑器将自动下载丢失的 npm 包并重新固定其依赖项。

要在服务器代码中使用 NPM 模块,请使用 Npm.require 就像您通常使用普通的 require 。值得注意的是, __meteor_bootstrap__.require 已被删除,其所有用途都已转换为 Npm.require

一个在您的应用程序中使用 NPM 模块的小示例

原文由 Dan Dascalescu 发布,翻译遵循 CC BY-SA 3.0 许可协议

请注意,此答案适用于 0.6.0 之前的 Meteor 版本,该版本于 2013 年 4 月发布并添加了直接 npm 集成

像往常一样安装模块 npm 然后使用

var require = __meteor_bootstrap__.require,
    pd = require("pd"),
    after = require("after") // etc

加载任何你想要的模块

原文由 Raynos 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题