在 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 包?的主要内容,如果未能解决你的问题,请参考以下文章