NwJS,并需要客户端库

NwJS, and requiring client libraries

我正在用 nwjs 构建一个小应用程序,自然我想使用一些典型的客户端库。例如,我在我的主应用程序中有

var ko = require('knockout');

问题是,虽然 document 在我的主应用程序中定义,但它没有在所需库的上下文中定义(我已经检查过)。有趣的是,在我 运行 尝试访问 document.

时出现错误之前,knockout 对很多事情都起作用了

这似乎是 nwjs 的主要问题,除非我遗漏了什么。你应该如何将客户端库与 nwjs 一起使用?

(FWIW,在几乎完全相同的主题上有一个 earlier question,但它涉及 React.js,它似乎有自己的 server/client 行为,所以答案没有解决基本问题。)

您必须使用不同的机制来根据它们是服务器端还是客户端来包含库。服务器端库可以用 require() 加载。客户端库(如果它们需要访问文档环境)需要在 index.html 文件中使用 <script> 标记加载。

事后看来很明显,但我花了一天的大部分时间才弄清楚,所以发帖以防其他人有同样的困惑...