javascript – 使用没有Webpack的模块“child_process”

我正在使用Webpack捆绑依赖项,其中一个是电子邮件服务邮戳.这项服务依赖于一个名为child_process的东西,它显然随节点一起提供.

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

Module not found: Error: Cannot resolve module ‘child_process’ in …

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

  node: {
    child_process: 'empty'
  }

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

Uncaught TypeError: exec is not a function

这是来自postmark(依赖于child_process的服务)的错误,抱怨child_process模块​​中的exec函数不存在.

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

最佳答案 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.

希望这能澄清它.

点赞