Javascript 我们如何或可以通过Meteor的npm使用节点模块?
我们如何或可以通过npm使用节点模块 或者这取决于包装 或者是否有推荐的规定方法 请注意,此答案适用于Meteor 0.6.0之前的版本,该版本于2013年4月发布,并添加了直接Javascript 我们如何或可以通过Meteor的npm使用节点模块?,javascript,node.js,npm,meteor,Javascript,Node.js,Npm,Meteor,我们如何或可以通过npm使用节点模块 或者这取决于包装 或者是否有推荐的规定方法 请注意,此答案适用于Meteor 0.6.0之前的版本,该版本于2013年4月发布,并添加了直接npm集成 通过npm安装模块,然后使用 var require = __meteor_bootstrap__.require, pd = require("pd"), after = require("after") // etc 加载您想要的任何模块 ,于2016年3月28日发布,为应用程序提供完整
npm
集成
通过npm
安装模块,然后使用
var require = __meteor_bootstrap__.require,
pd = require("pd"),
after = require("after") // etc
加载您想要的任何模块
,于2016年3月28日发布,为应用程序提供完整的ES6(ES2015)模块支持和开箱即用的NPM支持。应用程序和软件包现在可以直接轻松地在客户端和服务器上加载NPM模块
如果可以使用1.3,请检查
例如,要使用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之前的版本: 在第三方软件包的帮助下。例如,要使用如下模块:
sudo npm安装-g ws
(或本地安装,请参阅)var Websocket = Npm.require('ws');
var myws = new Websocket('url');
Npm.require()
调用,例如var Readable=Npm.require('stream')。Readable
多亏了阿鲁诺达开发的Meteor,你可以直接使用任何一款 您还可以从智能软件包定义对Npm软件包的依赖关系-来自Npm支持: 通过在
package.js
中添加对Npm.dependens
的调用,您的智能包现在可以直接定义依赖项:
Npm.depends({
"awssum": "0.12.2",
"underscore.string": "2.3.1"
});
所有这些都可以很好地与热代码重新加载一起工作,就像Meteor的其余部分一样。当您进行更改时,捆绑程序将自动下载丢失的npm包并重新固定其依赖项
要在服务器代码中使用NPM模块,请像通常使用普通的require
一样使用NPM.require
。值得注意的是,\uuuuuuuuuuuuuuuuMeteor\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
有。我正在使用它很好地安装所有依赖项。它的行为类似于Meteor引擎分支中的官方支持(它在运行时安装依赖项),但它也支持从存储库和类似的东西进行安装。从Meteor 0.6.5开始,我写了一篇关于如何做到这一点的要点。我在Meteopedia上做了一篇完整的文章:
本文介绍了如何在应用程序和/或软件包中使用npm,以及包装常规回调和event emmitter回调以在Meteor和Fibers中正常工作的常见模式,并包括Arunoda的异步实用程序和其他资源的参考。您可以使用该软件包
然后在项目的根目录中创建一个包含NPM模块信息的packages.json
文件
{
"redis": "0.8.2",
"github": "0.1.8"
}
然后简单到(服务器端)
因此,您只需使用Meteor.npmRequire
而不是require
@SteeveCannon,因为它会在客户端失败。当您使用npm安装模块时,请检查npm版本是否为1.0或更高,并进行本地安装(npm安装模块名称)。以及如何在客户端上要求模块?只是想得到working@Nico使用browserify或将模块破解成单个js文件它似乎在可传递依赖项上崩溃-例如,尝试使用aws库。有什么想法吗?Meteor 0.6.0取代了对此类脚本的需要。请看Dan的回答。你知道0.6什么时候会在windows上发布吗?你能澄清一下Npm.require(…)与http或url等nodejs核心模块一起工作吗?如果您有答案,可以在答案中添加这些信息。@MikeGraf:添加了一个使用核心模块的示例。@rickyduck:现在非常有用,如果不是今天,几天后就会正式发布。@DanDascalescu终于!仅仅为了简单地使用npm模块,这个软件包就太过分了。@MurWade这是最简单的方法。唯一的另一种方法是制作自己的软件包,这太过分了。我也不建议像Dan的回答那样使用npm install-g
,因为捆绑/部署应用程序时无法正常工作。这样,当它捆绑在“应用程序中的NPM”第3点时,它就可以安装了。var Github=Meteor.require('Github');是否应该是Meteor.npmRequire(…)?
{
"redis": "0.8.2",
"github": "0.1.8"
}
var github = Meteor.npmRequire("github");
var redis = Meteor.npmRequire("redis");