在没有 Webpack 的情况下使用模块“child_process”
Posted
技术标签:
【中文标题】在没有 Webpack 的情况下使用模块“child_process”【英文标题】:Using module "child_process" without Webpack 【发布时间】:2016-05-01 05:19:42 【问题描述】:我正在使用 Webpack 来捆绑依赖项,其中之一是电子邮件服务 postmark
。该服务依赖于一个名为 child_process
的东西,显然是 node 附带的。
问题是,当我尝试运行 webpack 来捆绑我的应用程序时,它会抱怨:
找不到模块:错误:无法解析模块中的“child_process”...
网上大部分答案都说,针对这个错误,我应该加一行:
node:
child_process: 'empty'
到我的 webpack 配置。但这没有任何意义,因为 webpack 只是不尝试查找 child_process,因此,当我运行我的应用程序时,我收到以下错误:
未捕获的类型错误:exec 不是函数
这是来自postmark
(依赖于child_process
的服务)的错误,抱怨child_process
模块中的exec
函数不存在。
因此,我想知道如何在我的构建中包含 child_process
模块而不引起 webpack 抱怨?
【问题讨论】:
【参考方案1】:这里是 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。
希望这可以澄清它。
【讨论】:
感谢您的回复 - 我已将其移植到我的 express 后端,它运行良好。以上是关于在没有 Webpack 的情况下使用模块“child_process”的主要内容,如果未能解决你的问题,请参考以下文章
在没有Webpack的情况下从NPM模块解析Sass @import