浏览代码

Initial work on allowing a headless build

JC Brand 7 年之前
父节点
当前提交
aa7483a881
共有 4 个文件被更改,包括 39 次插入8 次删除
  1. 6 0
      Makefile
  2. 2 2
      src/converse-mam.js
  3. 23 0
      src/headless.js
  4. 8 6
      src/inverse.js

+ 6 - 0
Makefile

@@ -171,6 +171,8 @@ transpile: stamp-npm src
 
 BUILDS = dist/converse.js \
 		 dist/converse.min.js \
+         dist/converse-headless.js \
+		 dist/converse-headless.min.js \
 		 dist/converse-muc-embedded.js \
 		 dist/converse-muc-embedded.min.js \
 		 dist/converse-no-jquery.js \
@@ -185,6 +187,10 @@ dist/converse.js: transpile src node_modules
 	$(RJS) -o src/build.js include=converse out=dist/converse.js optimize=none 
 dist/converse.min.js: transpile src node_modules
 	$(RJS) -o src/build.js include=converse out=dist/converse.min.js
+dist/converse-headless.js: transpile src node_modules
+	$(RJS) -o src/build.js paths.converse=src/headless include=converse out=dist/converse-headless.js optimize=none 
+dist/converse-headless.min.js: transpile src node_modules
+	$(RJS) -o src/build.js paths.converse=src/headless include=converse out=dist/converse-headless.min.js
 dist/converse-esnext.js: src node_modules
 	$(RJS) -o src/build-esnext.js include=converse out=dist/converse-esnext.js optimize=none 
 dist/converse-esnext.min.js: src node_modules

+ 2 - 2
src/converse-mam.js

@@ -13,8 +13,6 @@
             "converse-core",
             "utils",
             "converse-disco",
-            "converse-chatview", // Could be made a soft dependency
-            "converse-muc", // Could be made a soft dependency
             "strophe.rsm"
     ], factory);
 }(this, function (sizzle, converse, utils) {
@@ -29,6 +27,8 @@
 
     converse.plugins.add('converse-mam', {
 
+        optional_dependencies: ['converse-chatview', 'converse-muc'],
+
         overrides: {
             // Overrides mentioned here will be picked up by converse.js's
             // plugin architecture they will replace existing methods on the

+ 23 - 0
src/headless.js

@@ -0,0 +1,23 @@
+/* Inverse.js components configuration
+ *
+ * This file is used to tell require.js which components (or plugins) to load
+ * when it generates a build of inverse.js (in dist/inverse.js)
+ */
+if (typeof define !== 'undefined') {
+    // The section below determines which plugins will be included in a build
+    define([
+        "converse-core",
+        /* START: Removable components
+         * --------------------
+         * Any of the following components may be removed if they're not needed.
+         */
+        "converse-chatboxes",   // Backbone Collection and Models for chat boxes
+        "converse-disco",       // Service discovery plugin
+        "converse-mam",         // XEP-0313 Message Archive Management
+        "converse-ping",        // XEP-0199 XMPP Ping
+        "converse-vcard",       // XEP-0054 VCard-temp
+        /* END: Removable components */
+    ], function(converse) {
+        return converse;
+    });
+}

+ 8 - 6
src/inverse.js

@@ -11,18 +11,20 @@ if (typeof define !== 'undefined') {
          * --------------------
          * Any of the following components may be removed if they're not needed.
          */
+        "converse-bookmarks",   // XEP-0048 Bookmarks
+        "converse-chatboxes",   // Backbone Collection and Models for chat boxes
         "converse-chatview",    // Renders standalone chat boxes for single user chat
         "converse-controlbox",  // The control box
-        "converse-bookmarks",   // XEP-0048 Bookmarks
-        "converse-roomslist",   // Show currently open chat rooms
+        "converse-disco",       // Service discovery plugin
+        "converse-headline",    // Support for headline messages
         "converse-mam",         // XEP-0313 Message Archive Management
         "converse-muc",         // XEP-0045 Multi-user chat
-        "converse-vcard",       // XEP-0054 VCard-temp
+        "converse-notification",// HTML5 Notifications
         "converse-otr",         // Off-the-record encryption for one-on-one messages
-        "converse-register",    // XEP-0077 In-band registration
         "converse-ping",        // XEP-0199 XMPP Ping
-        "converse-notification",// HTML5 Notifications
-        "converse-headline",    // Support for headline messages
+        "converse-register",    // XEP-0077 In-band registration
+        "converse-roomslist",   // Show currently open chat rooms
+        "converse-vcard",       // XEP-0054 VCard-temp
         /* END: Removable components */
 
         "converse-inverse",     // Inverse plugin for converse.js