在 Meteor 1.0 中加载 NPM 包?

Posted

技术标签:

【中文标题】在 Meteor 1.0 中加载 NPM 包?【英文标题】:Load NPM package in Meteor 1.0? 【发布时间】:2014-12-26 23:03:54 【问题描述】:

随着 Meteor 的正式推出,是否有可靠的方法来使用 NPM 包?我正在尝试使用 embed.ly,但我没有看到任何直接的方法。

另外,作为一个流星新手,我如何在我的文件中包含包?我没有看到任何“要求”或“导出”功能。

谢谢!

【问题讨论】:

当您将 Meteor 包添加到您的应用程序时,它的导出将自​​动在您的 JS 文件中访问。不需要使用require。 我不想关闭 Meteor 问题,但这是 How do we or can we use node modules via npm with Meteor? 的完全相同的副本 【参考方案1】:

在新的“localmarket”示例中,它们在包目录中包含一个 npm 包,如下所示:

请求 = Meteor.wrapAsync(Npm.require('request'));

在 package.js 文件中:

Package.describe(
  summary: "Wraps the request module from Npm in a fiber.",
  version: '0.0.0'
);

Npm.depends(request: "2.33.0");

Package.on_use(function (api) 
  api.add_files('request-server.js', 'server');
  api.export('Request');
);

【讨论】:

问题不在于在流星包中使用 npm 包。使用 npm 包的机制与流星项目本身的使用不同 我同意,这在我看来是更简洁的方法,因为使用了已经实现的功能。您可以简单地创建自己的包并定义依赖项,而不是添加使您能够通过另一个配置文件包含 npm 包的 3rd 方包。【参考方案2】:

你可以安装meteorhacks:npm

meteor add meteorhacks:npm
meteor

Meteor 然后会停止。然后您可以编辑新的 package.json 文件


    "request" : "2.33.0"

然后当你启动 Meteor 时,它会为你安装 npm 模块。

用法如下(使用Meteor.npmRequire而不是require

request = Meteor.npmRequire("request");

【讨论】:

值得注意的是 Meteor.npmRequire 只是服务器端。 github.com/meteorhacks/npm 您好,谢谢您的回答!我现在特别是在使用 JSFTP 模块时遇到了一些问题。我在这里有一个问题,如果您能给我一些指示,我将不胜感激。 ***.com/questions/28822711/running-ftp-in-meteor 另外值得注意的是 Meteor 原生支持:docs.meteor.com/#/full/Npm-depends @jm_____ meteorhacks:npm 包实际上只是 Npm.depends 和 Npm.require 的代理。原生使用并不简单,因为它需要你制作一个包含它们的包,就像 meteorhacks:npm 所做的那样,你不必编写一个。【参考方案3】:

你可以先安装这个包https://github.com/meteorhacks/npm。然后用它来 require 其他 NPM 包。

【讨论】:

以上是关于在 Meteor 1.0 中加载 NPM 包?的主要内容,如果未能解决你的问题,请参考以下文章

2013 Meteor NPM 包

在 j2me 中加载屏幕

在 J2ME 中加载图像?

通过 cosmos:browserify 在 Meteor 中使用 npm 包

发布到 npm 时无法在 Vue 中加载样式

如何从 GitHub 为 Meteor 安装 NPM 包?