From 02520b72c8491fec5ce0673166a07be9805c4dd7 Mon Sep 17 00:00:00 2001 From: Simon Elliott Date: Mon, 11 Nov 2013 17:27:14 +0000 Subject: [PATCH] namespace rjs + don't use almond(no remote support) + working index --- Gruntfile.js | 11 ++++++----- bower.json | 3 ++- index.html | 8 ++------ src/_wrapper/bottom.js | 4 ++++ src/_wrapper/top.js | 12 ++++++++++++ src/{index.js => sqwidget.js} | 3 +-- test/fixture/example.js | 2 +- test/test-main.js | 5 ++++- 8 files changed, 32 insertions(+), 16 deletions(-) create mode 100644 src/_wrapper/bottom.js create mode 100644 src/_wrapper/top.js rename src/{index.js => sqwidget.js} (73%) diff --git a/Gruntfile.js b/Gruntfile.js index 483e339..65acd86 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -48,19 +48,20 @@ module.exports = function(grunt) { compile: { options: { baseUrl: "src", - out: 'dist/<%= bower.name %>-<%= bower.version %>.js', + out: 'dist/<%= bower.name %>.js', paths: { - almond: '../bower_components/almond/almond', + almond: 'lib/almond/almond', + requirejs: 'lib/requirejs/require', domReady: 'lib/requirejs-domready/domReady', }, - include: ['almond', 'index'], + include: ['requirejs', 'sqwidget'], // Wrapper for AMD wrap: { startFile: 'src/_wrapper/top.js', endFile: 'src/_wrapper/bottom.js' }, - optimize: 'uglify2', - //optimize: 'none', + //optimize: 'uglify2', + optimize: 'none', preserveLicenseComments: false, generateSourceMaps: true } diff --git a/bower.json b/bower.json index 0efb396..0213b76 100644 --- a/bower.json +++ b/bower.json @@ -27,6 +27,7 @@ "bean": "~1.0.4", "mocha": "~1.14.0", "chai": "~1.8.1", - "requirejs": "~2.1.9" + "requirejs": "~2.1.9", + "almond": "~0.2.6" } } diff --git a/index.html b/index.html index 0022329..322ea39 100644 --- a/index.html +++ b/index.html @@ -6,15 +6,11 @@

Publisher Website

The widget script loads from //localhost:8001 and all the widgets are loaded from //localhost:8002.

- - + -
-
diff --git a/src/_wrapper/bottom.js b/src/_wrapper/bottom.js new file mode 100644 index 0000000..bdf7a0e --- /dev/null +++ b/src/_wrapper/bottom.js @@ -0,0 +1,4 @@ + + this.sqwidget = { define: define }; + return require(['sqwidget'], function() {}); +})); diff --git a/src/_wrapper/top.js b/src/_wrapper/top.js new file mode 100644 index 0000000..e07ad7f --- /dev/null +++ b/src/_wrapper/top.js @@ -0,0 +1,12 @@ +(function (window, factory) { + if (typeof define === 'function' && define.amd) { + // AMD + define(factory); + } else if (typeof exports === 'object') { + // CommonJS + module.exports = factory(); + } else { + // Browser globals (mylib is your global library identifier) + window.mylib = factory(); + } +}(this, function () { diff --git a/src/index.js b/src/sqwidget.js similarity index 73% rename from src/index.js rename to src/sqwidget.js index 70f5f65..ce60d32 100644 --- a/src/index.js +++ b/src/sqwidget.js @@ -1,7 +1,6 @@ -define(['require', 'core'], function(require, Core) { +define(['require', './core'], function(require, Core) { var sqwidget = new Core(); - require(['domReady!'], function() { sqwidget.detectSources(); sqwidget.initialize(); diff --git a/test/fixture/example.js b/test/fixture/example.js index aa7542c..de81250 100644 --- a/test/fixture/example.js +++ b/test/fixture/example.js @@ -1,4 +1,4 @@ -define(function() { +sqwidget.define(function() { return { Controller: function (opts) { opts.config.el.append("
TEST
"); diff --git a/test/test-main.js b/test/test-main.js index 324b029..92beaa1 100644 --- a/test/test-main.js +++ b/test/test-main.js @@ -13,5 +13,8 @@ requirejs.config({ domReady: 'lib/requirejs-domready/domReady' }, deps: tests, - callback: window.__karma__.start + callback: function() { + window.sqwidget.define = define; + window.__karma__.start(); + } });