! The steps below can differ for your app, so be careful.

  • Prepare the app
    • In a file explorer, navigate to your app's root folder (e.g. /Portals/0/2sxc/MyFancyApp)
    • Move all Angular related files to a new subfolder ng 
    • If you have an api folder, move it to a new folder dev 
    • Add .gitignore and _AngularApp.cshtml from https://github.com/2sic/app-template-angular to the root of your application
    • Copy the file publish.js from https://github.com/2sic/app-template-angular/tree/master/ng to your ng folder
    • Modify package.json to allow local development and publishing - you can view the template's package.json for reference
      • Open the file [app-folder]/ng/package.json 
      • Below the versions attribute, add a new node config with the content:
        { "publish_path": ".." } 
      • Change the script/start node to ng serve --public-host localhost:4200 --disable-host-check - this will allow the app to request the local development files while running Angular development server
      • Add the following scripts to the scripts node:
        "publish-staging": "ng build --prod && node publish.js staging",
        "publish-live": "ng build --prod && node publish.js live"
    • Add the required dependencies to your app
      • Run npm install cpx del --save-dev to install the new dependencies
  • Build and publish the app
    • Run npm run publish-staging and npm run publish-live and check if a folder [app-root]/staging is created - if not, something is wrong
  • Login to DNN as host user, open the management of your app and change the app's view template to the new file _AngularApp.cshtml 
  • Make sure the app works again
  • Remove old files like _Index.cshtml