generator-sp-classic

1.1.10 • Public • Published

SharePoint Classic Extension

Yeoman Generator

SharePoint Classic Extension Generator using React, Flux, PnPjs, TypeScript, Sass, WebPack, Jest (test), Istanbul (code coverage) and PnP PowerShell for deployment. Working on SP Online and 2016. The project also includes a SP authentication proxy. IE 10+ compatible.

Install

npm install -g generator-sp-classic

Run

yo sp-classic

Setup steps

1. Setup Proxy

npm run proxy

2. Set _spPageContextInfo-object in default.html

var _spPageContextInfo = {};
    _spPageContextInfo.serverRequestPath = "/sites/[SITE_NAME]/pages/welcome.aspx";
    _spPageContextInfo.siteAbsoluteUrl = "https://[TENANT].sharepoint.com/sites/[SITE_NAME]";
    _spPageContextInfo.siteServerRelativeUrl = "/sites/[SITE_NAME]";
    _spPageContextInfo.webServerRelativeUrl = "/sites/[SITE_NAME]";
    _spPageContextInfo.webTitle = "Test";
    ...

Build

Compile scripts and style, and create deployment folder.

npm run build

Develop

Starts the proxy for local development.

npm run serve

Test/Lint

Execute tests and lint.

npm run test  
jest --c ./config/Jest/jest.config.json --no-cache --watch
npm run lint  

Requirements

The tenant need to have the following scripts running:

npm i @proactive-as/pnp.vendor
npm i core-js

Setup example using PnP PowerShell:

$webUrl = (Get-PnPWeb).ServerRelativeUrl.TrimEnd('/')
 
# Add PnP JS
$coreJSUrl = $webUrl + "/Style Library/Plesner/Scripts/core.min.js"
$pnpJSUrl = $webUrl + "/Style Library/Plesner/Scripts/pnp.vendor.js"
# Only for on prem 2016 without React
$reactJSurl = $webUrl + "/Style Library/Plesner/Scripts/react.production.min.js"
$reactDomJSurl = $webUrl + "/Style Library/Plesner/Scripts/react-dom.production.min.js"
$scriptBlock = "
                SP.SOD.registerSod('core.min.js', '$coreJSUrl');
                SP.SOD.registerSod('pnp.vendor.js', '$pnpJSUrl');
                SP.SOD.registerSod('react.production.min.js', '$reactJSurl');
                SP.SOD.registerSod('react-dom.production.min.js', '$reactDomJSurl');
                RegisterSodDep('react.production.min.js', 'core.min.js');
                RegisterSodDep('react-dom.production.min.js', 'react.production.min.js');
                RegisterSodDep('pnp.vendor.js', 'react-dom.production.min.js');
                SP.SOD.loadMultiple(['react-dom.production.min.js', 'react.production.min.js', 'pnp.vendor.js', 'core.min.js'], function(){
                });
                "
 
Add-PnPJavaScriptBlock -Name "Vendor scripts" -script $scriptBlock -Sequence 1000 -Scope Site

Dependencies (3)

Dev Dependencies (0)

    Package Sidebar

    Install

    npm i generator-sp-classic

    Weekly Downloads

    2

    Version

    1.1.10

    License

    MIT

    Unpacked Size

    41 kB

    Total Files

    39

    Last publish

    Collaborators

    • smukked