This document is still under construction
Since node-webkit supports GUI applications instead of console applications, the output of
console.log() (and other similar methods such as
console.error()) is redirected to WebKit's console. You may see it in your “Developer Tools” window (on its “Console” tab).
A couple of new fields is added to the global
process.versions['node-webkit']is set with node-webkit's version.
process.versions['chromium']is set with the chromium version which node-webkit is based on. (since v0.7.3)
process.mainModuleis set for the start page (such as
index.html) as specified in the manifest's
mainfield. However, when the
node-mainfield is also specified in the manifest,
process.mainModulepoints to the file specified in the
The following names are inserted to the global object in Node's context:
require- this is the
require()function within the main module.
Behaviour of relative paths in Node's
require() method depends on how the parent file is used in the application (where “the parent file” is the file in which the
require() method is called):
require()), then the child's relative path is treated as relative to its parent.
Window.open(), classic DOM
<script src="...">element, etc.), then the child's relative path is treated as relative to the application's root directory.
WebKit (Chrome) has its own DOM
crypto object. When you
require() the Node API module of the same name (see http://nodejs.org/docs/latest/api/crypto.html for details), you have to use some other name (see issue 540 for example).
Only Node modules (called by
require() method) can use the
__dirname global to read the path to their file's directory.
This global is not available in WebKit's context (including the “Developer Tools” window).
exports.dirname = __dirname; in a
util.js file and require it in your main JS file:
var dirname = require('./util').dirname; console.log(dirname); //=> /Users/johndoe/dev/project/
child_process.fork is broken in node-webkit.