【发布时间】:2018-05-06 13:19:30
【问题描述】:
我想用 node webkit (Nw.js) 构建一个 vue.js 应用程序。
应用程序必须执行二进制文件,所以我这样做了
const exec = require("child_process").exec;
exec(
'"C:\\someBin.exe" /someOptions',
(e, stdout, stderr) => {
if (e instanceof Error) {
console.error(e);
throw e;
}
console.log("stdout ", stdout);
console.log("stderr ", stderr);
}
);
我尝试使用 .exec 或 .spawn,但我总是遇到一些奇怪的错误,例如:
TypeError: (0 , n(...).exec) is not a function
它必须使用 vue.js 与我链接,因为当我在一个简单的节点 webkit 应用程序中测试此代码时,它只有一个脚本标签,它可以工作!
webpack(由 vue.js 使用)和 nodejs 的 require 关键字之间是否存在某种不兼容?
当打印 require("child_process") 的内容时,有一些东西,但没有我所期望的(没有 spawn 或 exec 方法)。似乎要求本身不适用于这种特定情况。但奇怪的是,它仍然适用于已安装的其他 npm 包。
为了创建应用程序,我使用 "npm run build" 直接在 /dist 目录中生成最终文件。在这个目录中,我放置了 node webkit 文件,所以我可以从那里运行 node webkit 二进制文件。
【问题讨论】:
-
您是否尝试在客户端使用
exec?您不能从浏览器执行二进制文件。你也不能在没有node core的情况下使用child_proccess,因为它只能在服务器端执行。 -
@Ohgodwhy 谢谢你的回答。正如我所说,我使用 NW.js 而不是常规浏览器。在这种情况下,我认为没有客户端或服务器端。上面的代码确实适用于一个简单的 nw.js 应用程序(没有框架或任何东西)。
标签: node.js vue.js vuejs2 node-webkit nw.js