我在哪里可以在 Meteor 1.3 中安装带有 npm 的包,以便其他 npm 库可以需要它

Posted

技术标签:

【中文标题】我在哪里可以在 Meteor 1.3 中安装带有 npm 的包,以便其他 npm 库可以需要它【英文标题】:Where do I install a package with npm in Meteor 1.3 so that other npm libraries can require it 【发布时间】:2016-06-13 03:59:35 【问题描述】:

我正在尝试在 Meteor 1.3 测试版中设置 cloudinary,我现在正准备购买 NPM 包。我遇到了一个更大的问题,其中一个包库中有一个声明crypto = require('crypto');,这很好。我刚刚通过 npm 安装了加密包。但是客户仍然给我错误 Uncaught Error: Cannot find module 'crypto' 。 ……有什么建议吗?

注意,两个模块都在同一个 node_modules 目录中:

node_modules
    crypto
    material-ui
    react
    react-cloudinary
    react-dom
    react-mounter
    react-tap-event-plugin

这尤其是 Meteor 1.3 的问题,因为我正在导入 npm 库

【问题讨论】:

【参考方案1】:

如果模块 A requires 模块 B 比模块 B 需要在模块 A 的 node_modules 目录中可用。这是 npm 和 node 做的通常的事情,你可能很熟悉。它在流星 1.3 中的工作方式相同。

如果你是模块 A 的开发者,你可以在 npm 或 npm link 中查看 peer dependencies。或者你只是在模块中运行npm install 看看是否能解决问题。

【讨论】:

那么每个模块都需要一个包含它所依赖的每个模块的目录吗?这似乎是多余的......我想我在模块目录中使用npm install给我带来麻烦? 是的,试试吧。它看起来确实是多余的,但另一方面它有助于每个模块独立。【参考方案2】:

NPM 包 crypto 只能在服务器端使用,因为它是 NodeJS 的内置库。它是一个高性能库,因此它可能已被编译。

如果您可以更改代码,则可以改用纯 js 库来创建哈希,例如 JS Hashes。

JS Hashes 可以在客户端和服务器端使用。

【讨论】:

以上是关于我在哪里可以在 Meteor 1.3 中安装带有 npm 的包,以便其他 npm 库可以需要它的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Meteor 1.3 中通过 NPM 使用引导程序?

如何在eclipse中安装Java EE插件?请各位大侠帮忙解答。还有就是JavaEE插件在哪里可以下载

如何在 Qt Designer 中安装 QChartView?

Meteor 在哪里存储它的数据?

在raspberry pi中安装缺少的python包

Meteor 错误,未定义 Handsontable