grunt-sp_module
Automatic generation of Elements.xml and SharePointProjectItem.spdata files for SharePoint Modules
Getting Started
This plugin requires Grunt ~0.4.2
If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
npm install grunt-sp_module --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-sp_module');
This plugin was designed to work with Grunt 0.4.x. If you're still using grunt v0.3.x it's strongly recommended that you upgrade, but in case you can't please use v0.3.2.
sp_module task
Run this task with the grunt sp_module
command.
Task targets, files and options may be specified according to the grunt Configuring tasks guide.
Usage Examples
Assume we have this file structure for myModule/
myModule/
|
|- foo.html
|
+- bar/
|
+- baz.html
and configure the sp_module
task like:
sp_module: {
myModule: {
options: {
name: 'myModuleName'
},
files: [{
cwd: 'myModule',
src: "{,*/}*.*"
}]
}
}
This will create the following files in myModule/
- Elements.xml
<?xml version="1.0" encoding="UTF-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Module Name="myModule">
<File Path="myModule\foo.html" Url="myModule\foo.html" ReplaceContent="TRUE"/>
<File Path="myModule\bar\baz.html" Url="myModule\bar\baz.html" ReplaceContent="TRUE"/>
</Module>
</Elements>
- SharePointProjectItem.spdata
<?xml version="1.0" encoding="UTF-8"?>
<ProjectItem xmlns="http://schemas.microsoft.com/VisualStudio/2010/SharePointTools/SharePointProjectItemModel" Type="Microsoft.VisualStudio.SharePoint.Module" DefaultFile="Elements.xml" SupportedTrustLevels="All" SupportedDeploymentScopes="Web, Site">
<Files>
<ProjectItemFile Source="Elements.xml" Target="myModule\" Type="ElementManifest"/>
<ProjectItemFile Source="foo.html" Target="myModule\" Type="ElementFile"/>
<ProjectItemFile Source="bar\baz.html" Target="myModule\bar\" Type="ElementFile"/>
</Files>
</ProjectItem>