- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在尝试使用 NW.js 构建一个简单的桌面应用程序.受到一些帖子的启发,包括 this one ,我想尝试一种没有任何 bower
、grunt
或 gulp
的纯 npm
方法。
所以我继续使用作为 npm
模块安装的 jquery
和 bootstrap
库。当我像这样在我的应用程序的 javascript 中注入(inject)模块时:
global.jQuery = $ = require("jquery");
var bootstrap = require("bootstrap");
我从 bootstrap
得到一个 ReferenceError: document is not defined
。我可以用老式的方式通过 html 文档加载 bootstrap
:
<script type="text/javascript" src="node_modules/bootstrap/dist/js/bootstrap.js"></script>
我在问自己,通过脚本文件中的 require
加载 bootstrap 是不是一个愚蠢的想法?基本上,我在那里不需要它。它可以通过 html 中的脚本标签加载。最佳做法是什么?我糊涂了。
更新。解决方案
听从@Kuf 的建议,我创建了一个build.js
脚本
var copyfiles = require('copyfiles');
copyfiles(["node_modules/bootstrap/dist/js/bootstrap.js", "vendor/js"], true, function (err) {
if (err) return console.error(err);
});
copyfiles(["node_modules/bootstrap/dist/css/bootstrap.css", "vendor/css"], true, function (err) {
if (err) return console.error(err);
});
由 prestart
钩子(Hook)触发:
"scripts": {
"build": "node build.js",
"prestart": "npm run build"
}
它允许我通过方便的路径访问 bootstrap
资源:
<link href="vendor/css/bootstrap.css" rel="stylesheet">
<script type="text/javascript" src="vendor/js/bootstrap.js"></script>
最佳答案
我认为发生错误是因为您在没有窗口上下文的情况下运行 require。你从哪里运行包含?请注意,对于从 node-main
运行的代码:
window: ... is not available at the time the script is loaded, because the script is executed before the DOM window load. (source)
即使在使用 require 导入 JS 时,您仍然需要包含 css 文件。我认为目前还没有“干净”或开箱即用的解决方案。尽管您所做的肯定会起作用,但它会生成奇怪且不自然的脚本路径。
我会添加一个构建 script :
"scripts": {
"build": "node build.js"
}
在 package.json 中将 bootstrap 从 node_modules 复制到 '/dist/' 以使路径更清晰。
关于javascript - 使用纯 npm 构建在 NW.js (node-webkit) 应用程序中加载 Bootstrap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35281666/
随着 Chrome 网上应用店应用程序即将停用,我已经成功地将我的应用程序转换为 nw.js 我对它的简单性和第一次运行的方式感到惊讶。我遇到的唯一棘手的事情是如何让我的应用程序图标在 mac 上显示
我想在一个世界中构建多个随机子图。因为,一般来说,子图的数量是不固定的,我不想为每个子图使用不同的品种。到目前为止,我对“手工”随机网络使用了一种非常粗鲁的方法(见下文),将“我的组”变量分配给海龟。
我知道 nw.js 通常是为了在客户端加载 html,但它也可以指向一个网站并显示吗?当我将 package.json 中的“main”值设置为 google.com 之类的值时,它不起作用。 我正在
在 nwjs 中构建 Web 应用程序会导致无法访问位于程序目录中的文件(以及 app.nw 文件),并且将所有文件添加到 nw 包中并不是一个好主意,因为某些文件可能需要在运行时通过 IO 进行更改
如果这是一个愚蠢的问题,我预先道歉。 当调用 nw:weighted-path-to 时,会返回一个链接列表,描述起始海龟和目标海龟之间的最短路径。 类似地,调用 nw:turtles-on-weig
我原以为 Node Webkit 会让打包并作为单个可执行文件添加到 Windows 变得简单,但它似乎并没有,他们建议使用 https://github.com/evshiron/nwjs-buil
我觉得我错过了一些简单的东西。 我正在 nw.js 中开发一个“托盘”应用程序。为此,我将 "main" 设置为 package.json 中的 "main.js" 文件。在 main.js 中,我实
稍微简化一下,NW.js和Electron包含浏览器(Webkit,Chromium或其他)的一部分,并结合了JavaScript引擎(node.js,io.js或其他)。 我的问题是:里面有多少份V
在我的主脚本中: var renderer = require('./templates/renderTemplates.js'); function show(json){ renderer
我正在尝试使用 module.exports()在我的 NW.js 应用程序中创建一个新模块。 我有两个正在使用的文件: 索引.js const gkm = require('gkm'); //Thi
我很感兴趣,当我处于控制台模式时,如何在 emacs 中调整拆分窗口的大小? 我打开我的文件: emacs myfilename.txt -nw 现在,当我将窗口拆分为: C-x 2 或者 C-x 3
我的应用程序是使用占位符构建的,单击“加载”时会直接读取文件。 Load showthefile() 执行一些操作,然后调用... var keyMapLoc = '\\path\\to\\file.
我正在将 NW.js v0.12.3 迁移到新的 NW.js v0.17.3。在我的旧应用程序中,我曾经打开一个窗口来显示来电通知。如果用户接听电话或挂断电话,我会根据特殊的事件监听器关闭窗口。 这是
下面的代码可以使用F11热键,让浏览器窗口全屏,如何实现第二次按F11热键,恢复原来的窗口大小? nw.App.registerGlobalHotKey(new nw.Shortcut({
环境 NW.js v0.12.3(32 位) Windows 8 Webchimera.js (播放器)VLC 构建 (2.2.1) require-new 问题 新窗口从父窗口打开。 Webchim
我在使用 nw.js 时遇到了一些问题。我已经“谷歌化”了很多天(几周),但我找不到任何解决方案。因此,我使用 nw.js 作为客户端来连接到内部服务器。它的工作方式就像一个经典的网站。我们可以使用网
我正在使用 Node Webkit 创建桌面应用程序。我现在需要创建一个可执行文件,因此安装了以下文件:https://github.com/nwjs/nw-builder 我很难理解说明,尤其是命令
我需要从包围地面叠加层的矩形中获取 NW LatLng。使用 mOverlay.getBounds() 将使我在旋转之前得到我需要的点(getBounds 忽略旋转)。 这是地面叠加层,我需要的确切
讨论 NetWeaver 7.4 (CD261) 中新的 ABAP 编程功能的 SAP 官方演示文稿对表表达式进行了大量讨论,替换了从内部表读取的旧语法: READ TABLE lt_aufk INT
在我的 NW.js 应用程序中,我将一些数据存储在本地存储中。现在我想删除应用程序和本地存储数据。我将应用程序移至垃圾箱并清理它。此外,我删除了与位于 /Users//Library/Caches/
我是一名优秀的程序员,十分优秀!