This generator will create a Helix compliant solution and provide the ability to create & add new projects to any layer (i.e. Feature, Foundation & Project). Unicorn is used for serialization, if you don't use serialization and or TDS you have the option not to add serialization to the project.
- VS 2015 or earlier
If you want to run the generator with only Visual Studio 2017 installed, you need the Microsoft Build Tools 2015 as well. For more information see issue #109 and #107 - NPM 3.x or newer (see installed version by running
npm -v
in PowerShell) - NODE 6.x or newer (see installed version by running
node -v
in PowerShell)
You need Yeoman (See here) . Yo and the generators used are installed using npm.
First thing is to install Yo using npm.
npm install -g yo
Then you have to install the helix generator.
npm install generator-helix -g
To create a Helix solution run the following command in an empty root folder where you want the solution to be created, and answer the questions.
yo helix
To add a new project to an existing run the following command in the root directory, that contains the VS solution file. You can call with the Project Name, if you do not you will be prompted to enter it.
yo helix:add [ProjectName] [VendorPrefix]
The Template folder contains all the files and folders that are copied to the project folder that is created.
By default, the Template folder for the add generator is at the following path:
C:\Users\[username]\AppData\Roaming\npm\node_modules\generator-helix\generators\add\Templates
You can modify any file in this folder to meet your specific requirements, but it will affect ALL projects.
What if you don't want to change the template for ALL sitecore solutions, but only for a specifc sitecore solution for example you want to do the following
- Add/Remove files
- Add/Remove folders
- Modify file contents
It is possible to define a solution specific Solution Template folder.
To override the default Template folder - add a folder called helix-template to the solution root.
Then all files will be copied from the solution specific helix-template folder instead of the default folder using the copyTpl
function in yeoman.
You can inject all the variables that the generator defines into your files using the syntax below for example.
<%= layerprefixedprojectname %>
List of Variables
layerprefixedprojectname
projectname
projectguid
layer
target
vendorprefix
Note
The one special case is that if you have a file called _project.csproj
in the folder, it will be copied and then renamed to the correct Project name.
This way you can create your own project file that matches your specific needs.
We love it if you would contribute! Please read our contributing guide if you're looking to help us out.
Help us! Keep the quality of feature requests and bug reports high
We strive to make it possible for everyone and anybody to contribute to this project. Please help us by making issues easier to resolve by providing sufficient information. Understanding the reasons behind issues can take a lot of time if information is left out. Time that we could rather spend on fixing bugs and adding features. Please adhere to our issues template when creating issues. Creating a new issues will automatically prompt a template that will let you know what the minimum requirements are.
Thank you, and happy contributing!
For transparency and insight into our release cycle, and for striving to maintain backward compatibility, the generator-helix project will be maintained under the Semantic Versioning guidelines as much as possible.
Releases will be numbered with the following format:
<major>.<minor>.<patch>
And constructed with the following guidelines:
- Breaking backward compatibility bumps the major (and resets the minor and patch)
- New additions without breaking backward compatibility bumps the minor (and resets the patch)
- Bug fixes and misc changes bumps the patch
For more information on SemVer, please visit http://semver.org/
To create a new version please follow the Release Process.
When I execute the yo
commands as described I'm met with Execution Policy errors
To get around this issues execute the following command in a command line prompt, such as PowerShell with administrator rights:
Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force