Project Structure

Directoy Structure

  • app - Node Server Application
    • controller
    • view
    • data
    • helper.json
  • node_modules - Node components are installed here
  • src - Client-Project Source Files
    • external
      • components - Bower Components are installed here
    • myapp.js - Entry module for client-application
  • dist - generated files
  • index.html
  • bower.json
  • package.json
  • GruntFile.js

npm modules

  • grunt-bootloader
  • dummy-json
  • connect-livereload
  • grunt-contrib-uglify
  • grunt-contrib-watch
  • underscore

bower modules

  • webmodules-foo
  • webmodules-bootloader
  • spamjs-view
  • spamjs-bootconfig

GruntFile.js options

    ...

    bootloader: {
      options: {
        indexBundles: ["webmodules/bootloader", "myproject/app"],
        src: "./",
        dest: "dist",
        resourceJson: "dist/resource.json",
        resourcesInline : true,
        livereloadUrl: "http://localhost:8081/livereload.js",
        bootServer: {
          port: 8087,
          indexMatch : /^\/olp\//
        }
      }
    },

    ....

    grunt.loadNpmTasks('grunt-contrib-cssmin');
    grunt.loadNpmTasks('grunt-bootloader');

    ...

    grunt.registerTask('scan', ['cssmin','bootloader:scan:skip']);
    grunt.registerTask('build', ['cssmin','bootloader:bundlify']);
    grunt.registerTask('start-cdn-server', ['bootloader:server', 'watch']);

    ...

index.html

<script src="http://my-static-content.com/dist/bootloader_bundled/webmodules.bootloader.js">
    bootloader({
        debug : false,
        indexBundle : "myproject/app",
        version: "2"
    });
</script>