Skip to content
JavaScript Python Other
Find file
Pull request Compare This branch is 93 commits ahead, 1 commit behind yui:master.
Latest commit 8af1574 Dec 9, 2011 @davglass Version Bump
Failed to load latest commit information.
lib Working around a Loader issue from 3.4.1 Dec 9, 2011
packages Version Bump Dec 9, 2011
perf Cache the file reads and cache the script compiles so it only happens… Apr 4, 2011
scripts Added --loglevel to npm command May 2, 2011
tests Fixed logic behind headers and data writing Oct 28, 2011
.npmignore Remote fetching, css loading, combo handler, inline docs, broke out i… Sep 10, 2010
DEVELOPER.markdown Updated Developer Docs Apr 4, 2011
LICENSE Updated to the YUI BSD license Aug 23, 2010
Makefile Updated Makefile Oct 18, 2011
README.textile Updated README Feb 17, 2011


YUI Bootstrapper for Node.js

The YUI3NodeJS project uses several 3rd party open source libraries and tools.

This file summarizes the tools used, their purpose, and the licenses under which they’re released.

This node.js module attempts to setup and bootstrap a working YUI 3 instance.

This module includes support for remote script loading via Y.Get.script() and remote data fetching via

See “JSDom Support” below for DOM manipulation.


All of the examples and tests assume you have node in your path and they are all executable.


All dependencies are installed when you install the yui3 package via npm

For server side dom manipulation, you need the following packages installed:


npm install jsdom


npm install htmlparser

Optional Dependancies

Express : LICENSE (MIT)

npm install express

Connect : LICENSE (MIT)

npm install connect

Installing – via NPM

npm install yui3

Installing – as a developer

You must have git and npm installed before you can develop.

git clone git://
cd nodejs-yui3/
npm install .

Using YUI3

This is the general-dom example

Remote Fetching

This example shows fetching a remote document and then using Node to modify it

Using the Y.Browser object

To comply with the “no-globals” CommonJS spec, there is no global document or window in this mode.
Just including the nodejs-dom module will create a fake dom for this instance.
You can create a document like this:
View this Gist

You can make older DOM code run by setting up a couple of local variables, like this

If you are using YUI to serve pages, you should use a Nested Use to create the document when the request comes in.

Something like this

I have an example showing this: examples/y-browser.js


    cd examples/


When using JSDom, All relevent YUI 3 Dom & Selector tests pass. The ones that are skipped revolve around styles and postioning. Since there is no window or CSS cascade, these seem unimportant at the moment.

Testing is pretty simple now once you install `yuitest`:

    npm install yuitest
    yuitest ./tests/*.js


This software is offered under the terms of the BSD license. See the LICENSE file or the YUI License for license text and copyright information.


Your contributions are welcome! Please review the YUI contributor guide before contributing. If you haven’t contributed to a YUI project before, you’ll need to review and sign the YUI CLA before we can accept your pull request.

Something went wrong with that request. Please try again.