我们如何,或者我们可以通过使用公共管理节点模块与流星?我们如何,或者我们可以通过使用公共管理节点模块

2019-05-13 13:05发布

我们如何,或者我们可以通过使用公共管理节点模块与流星 ?

或者是东西,将依赖于包装API ?

或者是有没有建议规定的方法是什么?

Answer 1:

流星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');

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


预流星1.3:

由于v0.6.0,流星与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


你可以使用任何超过23万个NPM模块直接与流星感谢NPM包通过Arunoda开发。

您也可以从智能包定义上NPM包的依赖-从最初公布的NPM支持:

你的智能包现在可以直接定义依赖,加入到呼叫Npm.dependspackage.js

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

所有这一切都与热代码重载工作得很好,就像流星的其余部分。 当你做出改变,所述捆绑会自动下载缺少的NPM包和重新针它的依赖。

要使用服务器代码内的NPM模块,使用Npm.require ,你通常会使用简单的require 。 值得注意的是, __meteor_bootstrap__.require已经被淘汰,所有的用途都被转换为Npm.require

有用户在使用的NPM模块的一个小例子 。



Answer 2:

需要注意的是这个答案适用于流星之前的版本0.6.0,它发布于2013年4月,并加入直接npm整合

安装,你通常会通过模块npm ,然后用

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

加载任何你想要的模块



Answer 3:

我做了这个就Meteorpedia一个完整的写了起来:

http://www.meteorpedia.com/read/npm

本文介绍如何使用NPM在这两个您的应用程序和/或套餐,并为包装定期回调和事件emmitter回调流星和纤维正常工作常用模式,而且包括对Arunoda的异步公用事业和其他资源的引用。



Answer 4:

您可以使用流星NPM包

meteor add meteorhacks:npm

然后创建一个packages.json在项目的根目录与新公共管理模块的信息文件。

{
    "redis": "0.8.2",
     "github": "0.1.8"
}

然后一样简单(服务器端)

var github = Meteor.npmRequire("github");
var redis = Meteor.npmRequire("redis");

所以,你只需要使用Meteor.npmRequire ,而不是require



Answer 5:

我写了一篇关于如何做到这一点的流星0.6.5,的要点如何Node.js的国家防范机制添加到您的Meteor.js项目



Answer 6:

我使用这样一个脚本这很好地安装所有Node.js的依赖关系。 它的行为类似于流星引擎分支(它安装在运行时依赖)的官方支持,但它也支持从安装的Git仓库和类似的东西。



文章来源: How do we or can we use node modules via npm with Meteor?