generator-portals-clientside
Version:
Generates a SharePoint clientside project skeleton. Brought to you by Skyline's Portals & Collaboration Team.
58 lines (53 loc) • 1.94 kB
JavaScript
var fs = require("fs");
var url = require("url");
module.exports = {
write1: function() {
this.fs.copyTpl(
this.templatePath("index.js"),
`src/scripts/components/${this.params.name}/index.js`,
this.params
);
this.fs.copyTpl(
this.templatePath("webpart.dwp"),
`src/webparts/${this.params.name}.dwp`,
this.params
);
this.fs.copyTpl(
this.templatePath("webpart.html"),
`src/webparts/${this.params.name}.html`,
this.params
);
updateComponentsIndex(this);
}
}
// var updateInstallScript = function(generator) {
// if (generator.params.addToPage) {
// var urlObj = url.parse(generator.params.url);
// var pageUrl = urlObj.path + "/" + generator.params.pageUrl;
// var fileContents = generator.fs.read("powershell/install.ps1");
// var textToReplace = `#END_INSTALL`
// if (fileContents.includes(textToReplace)) {
// var newText =
// `
// Set-PnPFileCheckedOut -Url "${pageUrl}"
// Add-PnPWebPartToWebpartPage -Path "src/webparts/${generator.params.name}.dwp" -ServerRelativePageUrl "${pageUrl}" -ZoneId "${generator.params.zone}" -ZoneIndex 0
// Set-PnPFileCheckedIn -Url "${pageUrl}"
// ${textToReplace}`
// fileContents = fileContents.replace(textToReplace, newText);
// console.log(fileContents);
// fs.writeFileSync("powershell/install.ps1", fileContents);
// }
// }
// }
var updateComponentsIndex = function(generator) {
var indexFilePath = generator.destinationPath("src/scripts/components/index.js");
var fileContents = generator.fs.read(indexFilePath);
var textToReplace = "module.exports = components;"
if (fileContents.indexOf(textToReplace) > -1) {
var newText =
`components.${generator.params.name} = require('./${generator.params.name}');
${textToReplace}`
fileContents = fileContents.replace(textToReplace, newText);
fs.writeFileSync(indexFilePath, fileContents);
}
}