Просмотр исходного кода

Merge pull request #255 from jitsi/webpack

Switch from Browserify to Webpack
dev1
hristoterezov 9 лет назад
Родитель
Сommit
997122de20
4 измененных файлов: 80 добавлений и 32 удалений
  1. 5
    0
      .babelrc
  2. 16
    20
      package.json
  3. 0
    12
      start_browserify.js
  4. 59
    0
      webpack.config.babel.js

+ 5
- 0
.babelrc Просмотреть файл

@@ -0,0 +1,5 @@
1
+{
2
+    "presets": [
3
+        "es2015"
4
+    ]
5
+}

+ 16
- 20
package.json Просмотреть файл

@@ -4,7 +4,7 @@
4 4
   "description": "JS library for accessing Jitsi server side deployments",
5 5
   "repository": {
6 6
     "type": "git",
7
-    "url": "git://github.com/jitsi/jitsi-meet"
7
+    "url": "git://github.com/jitsi/lib-jitsi-meet"
8 8
   },
9 9
   "keywords": [
10 10
     "jingle",
@@ -15,37 +15,33 @@
15 15
   "author": "",
16 16
   "readmeFilename": "README.md",
17 17
   "dependencies": {
18
+    "async": "0.9.0",
19
+    "current-executing-script": "*",
18 20
     "events": "*",
21
+    "jitsi-meet-logger": "jitsi/jitsi-meet-logger",
22
+    "jssha": "1.5.0",
19 23
     "pako": "*",
24
+    "retry": "0.6.1",
20 25
     "sdp-interop": "0.1.11",
21
-    "sdp-transform": "1.5.*",
22 26
     "sdp-simulcast": "0.1.7",
23
-    "async": "0.9.0",
24
-    "retry": "0.6.1",
25
-    "jssha": "1.5.0",
26
-    "jitsi-meet-logger": "git+https://github.com/jitsi/jitsi-meet-logger.git",
27
-    "strophe": "^1.2.2",
28
-    "strophejs-plugins": "^0.0.6",
27
+    "sdp-transform": "1.5.*",
29 28
     "socket.io-client": "1.3.6",
30
-    "current-executing-script": "*"
29
+    "strophe": "^1.2.2",
30
+    "strophejs-plugins": "^0.0.6"
31 31
   },
32 32
   "devDependencies": {
33
-    "babelify": "*",
34
-    "babel-preset-es2015": "*",
33
+    "babel-core": "*",
34
+    "babel-loader": "*",
35 35
     "babel-polyfill": "*",
36
-    "browserify": "11.1.x",
36
+    "babel-preset-es2015": "*",
37
+    "babel-register": "*",
37 38
     "jshint": "^2.8.0",
38 39
     "precommit-hook": "^3.0.0",
39
-    "exorcist": "*",
40
-    "uglify-js": "2.4.24",
41
-    "watchify": "^3.7.0"
40
+    "string-replace-loader": "*",
41
+    "webpack": "*"
42 42
   },
43 43
   "scripts": {
44
-    "install": "npm run browserify && npm run version && npm run uglifyjs",
45
-    "browserify": "node ./start_browserify.js | exorcist lib-jitsi-meet.js.map > lib-jitsi-meet.js && [ -s lib-jitsi-meet.js ]",
46
-    "version": "VERSION=`./get-version.sh` && echo lib-jitsi-meet version is:${VERSION} && sed -i'' -e s/{#COMMIT_HASH#}/${VERSION}/g lib-jitsi-meet.js",
47
-    "uglifyjs": "uglifyjs -p relative lib-jitsi-meet.js -o lib-jitsi-meet.min.js --source-map lib-jitsi-meet.min.map --in-source-map lib-jitsi-meet.js.map",
48
-    "watch": "watchify JitsiMeetJS.js -s JitsiMeetJS -o lib-jitsi-meet.js -v",
44
+    "install": "webpack -p",
49 45
     "lint": "jshint .",
50 46
     "validate": "npm ls"
51 47
   },

+ 0
- 12
start_browserify.js Просмотреть файл

@@ -1,12 +0,0 @@
1
-var browserify = require("browserify");
2
-var babelify = require("babelify");
3
-
4
-browserify("./JitsiMeetJS.js", {
5
-    debug: true,
6
-    standalone: "JitsiMeetJS"
7
-}).transform(babelify.configure({
8
-  ignore: [
9
-      /\/node_modules\/(?!lib-jitsi-meet\/)/,
10
-      "modules/RTC/adapter.screenshare.js"],
11
-  presets: ["es2015"]
12
-})).bundle().pipe(process.stdout);

+ 59
- 0
webpack.config.babel.js Просмотреть файл

@@ -0,0 +1,59 @@
1
+/* global __dirname */
2
+
3
+import child_process from 'child_process'; // eslint-disable-line camelcase
4
+import process from 'process';
5
+
6
+const minimize
7
+    = process.argv.indexOf('-p') !== -1
8
+        || process.argv.indexOf('--optimize-minimize') !== -1;
9
+
10
+export default {
11
+    devtool: 'source-map',
12
+    entry: {
13
+        'lib-jitsi-meet': './JitsiMeetJS.js'
14
+    },
15
+    module: {
16
+        loaders: [ {
17
+            // Version this build of the lib-jitsi-meet library.
18
+
19
+            loader: 'string-replace',
20
+            query: {
21
+                flags: 'g',
22
+                replace:
23
+                    child_process.execSync( // eslint-disable-line camelcase
24
+                            `${__dirname}/get-version.sh`)
25
+
26
+                        // The type of the return value of
27
+                        // child_process.execSync is either Buffer or String.
28
+                        .toString()
29
+
30
+                            // Shells may automatically append CR and/or LF
31
+                            // characters to the output.
32
+                            .trim(),
33
+                search: '{#COMMIT_HASH#}'
34
+            },
35
+            test: `${__dirname}/JitsiMeetJS.js`
36
+        }, {
37
+            // Transpile ES2015 (aka ES6) to ES5.
38
+
39
+            exclude: [
40
+                `${__dirname}/modules/RTC/adapter.screenshare.js`,
41
+                `${__dirname}/node_modules/`
42
+            ],
43
+            loader: 'babel',
44
+            test: /\.js$/
45
+        } ]
46
+    },
47
+    node: {
48
+        // Allow the use of the real filename of the module being executed. By
49
+        // default Webpack does not leak path-related information and provides a
50
+        // value that is a mock (/index.js).
51
+        __filename: true
52
+    },
53
+    output: {
54
+        filename: `[name]${minimize ? '.min' : ''}.js`,
55
+        library: 'JitsiMeetJS',
56
+        libraryTarget: 'umd',
57
+        sourceMapFilename: `[name].${minimize ? 'min' : 'js'}.map`
58
+    }
59
+};

Загрузка…
Отмена
Сохранить