Installation

First, install Yeoman and generator-dnn using npm (we assume you have pre-installed node.js).

npm install -g yo
npm install -g generator-dnn

You will also want to install gulp.js

npm install -g gulp

Generate Your First Module

Let's create a SPA module using the generator.

Open a command line. Create a directory where your modules will be stored. Go into the directory and generate your module.

mkdir mytest
cd mytest
yo dnn

You will be prompted with a few questions.
Initial Yeoman Questions

Select the SPA Module option. Answer the rest of the questions that the generator asks you. After answering the rest of the questions the generator will create the directory structure and then download any related packages necessary.
Rest of Yeoman Questions

What you end up with is a solution file in the directory you are currently in with a sub-directory containing your module.

One thing you won't see is a License.txt or ReleaseNotes.txt files. Instead, you see License.md and ReleaseNotes.md. This allows you to use markdown to create your License and Release Notes (It also allows GitHub to render your content nicely). When you build the module using the command line it will automatically convert the markdown to HTML and generate the proper text files for the install package.

From here you can develop your module through any code editor you wish. Once you are ready to install and run through some tests you can run the build to generate the proper installers.

Let's run the build! If you named your module mytest like in the example you can go to this directory and use npm to build your packages. This solution uses some Gulp.js scripts and MS Build to build your module.
Simply type

npm run build

Build Output

After the module is built the DNN install packages will be created under the _Packages directory. You can now load your module into DNN through the Host Extensions installer.
Packages

That's it! generating the structure and start project for your DNN modules has never been simpler.

Troubleshooting

Most issues can be found by running

yo doctor

The doctor command will diagnose and provide steps to resolve the most common issues.