5

我正在使用 Webpack 来捆绑依赖项,其中之一是电子邮件服务postmark。该服务依赖于child_process显然随 node.js 一起提供的东西。

问题是,当我尝试运行 webpack 来捆绑我的应用程序时,它会抱怨:

未找到模块:错误:无法在...中解析模块“child_process”

网上的大多数答案都说,为了响应这个错误,我应该添加以下行:

  node: {
    child_process: 'empty'
  }

到我的 webpack 配置。但这没有任何意义,因为 webpack 只是不尝试查找 child_process,因此,当我运行我的应用程序时,我收到以下错误:

未捕获的类型错误:exec 不是函数

这是来自postmark(依赖的服务child_process)抱怨模块中的exec功能child_process不存在的错误。

因此,我想知道如何child_process在不抱怨 webpack 的情况下将模块包含在我的构建中?

4

1 回答 1

3

Postmark 的前端开发者在这里。

看起来您正在尝试捆绑postmark.js到您的客户端 JavaScript,但https://github.com/wildbit/postmark.js是一个 Node.js 库。这意味着它不会在浏览器中运行,并且需要一个正在运行的 Node.js 服务器。

不支持浏览器环境的主要原因是安全性。如您在此示例中所见:

var postmark = require("postmark");
var client = new postmark.Client("<server key>");

它要求您插入身份验证令牌。将它与您的客户端 JS 捆绑在一起会暴露它并允许每个人访问您的邮戳帐户 API。

希望这可以澄清它。

于 2016-01-27T16:37:00.897 回答