浏览代码

Try prebundling vega-embed in extensions

Saul Shanabrook 5 年之前
父节点
当前提交
3dee843782

+ 4 - 0
buildutils/src/ensure-package.ts

@@ -59,6 +59,10 @@ export async function ensurePackage(
 
   // Verify devDependencies are consistent.
   promises = Object.keys(devDeps).map(async name => {
+    if (differentVersions.indexOf(name) !== -1) {
+      // Skip processing packages that can have different versions
+      return;
+    }
     if (!(name in seenDeps)) {
       seenDeps[name] = await getDependency(name);
     }

+ 3 - 1
buildutils/src/ensure-repo.ts

@@ -19,7 +19,9 @@ type Dict<T> = { [key: string]: T };
 
 // Data to ignore.
 let MISSING: Dict<string[]> = {
-  '@jupyterlab/buildutils': ['path']
+  '@jupyterlab/buildutils': ['path'],
+  '@jupyterlab/vega4-extension': ['vega-embed'],
+  '@jupyterlab/vega5-extension': ['vega-embed']
 };
 
 let UNUSED: Dict<string[]> = {

+ 0 - 5
dev_mode/package.json

@@ -2,11 +2,6 @@
   "name": "@jupyterlab/application-top",
   "version": "1.0.0-alpha.14",
   "private": true,
-  "workspaces": {
-    "nohoist": [
-      "@jupyterlab/vega*-extension/vega*/**"
-    ]
-  },
   "scripts": {
     "build": "webpack",
     "build:prod": "node --max_old_space_size=4096 ./node_modules/webpack/bin/webpack.js --config webpack.prod.config.js",

+ 0 - 5
jupyterlab/staging/package.json

@@ -2,11 +2,6 @@
   "name": "@jupyterlab/application-top",
   "version": "1.0.0-alpha.14",
   "private": true,
-  "workspaces": {
-    "nohoist": [
-      "@jupyterlab/vega*-extension/vega*/**"
-    ]
-  },
   "scripts": {
     "build": "webpack",
     "build:prod": "node --max_old_space_size=4096 ./node_modules/webpack/bin/webpack.js --config webpack.prod.config.js",

+ 6 - 1
package.json

@@ -17,7 +17,12 @@
       "jupyterlab/tests/mock_packages/extension"
     ],
     "nohoist": [
-      "@jupyterlab/vega*-extension/vega*/**"
+      "**/vega-embed",
+      "**/vega-lite",
+      "**/vega",
+      "**/vega-embed/**",
+      "**/vega-lite/**",
+      "**/vega/**"
     ]
   },
   "scripts": {

+ 7 - 6
packages/vega4-extension/package.json

@@ -27,7 +27,7 @@
     "lib": "lib/"
   },
   "scripts": {
-    "build": "tsc -b",
+    "build": "tsc -b && webpack",
     "clean": "rimraf lib",
     "docs": "typedoc --options tdoptions.json --theme ../../typedoc-theme src",
     "prepublishOnly": "npm run build",
@@ -36,16 +36,17 @@
   "dependencies": {
     "@jupyterlab/rendermime-interfaces": "^1.3.0-alpha.13",
     "@phosphor/coreutils": "^1.3.1",
-    "@phosphor/widgets": "^1.8.0",
-    "vega": "^4.4.0",
-    "vega-embed": "3.18.2",
-    "vega-lite": "^2.7.0"
+    "@phosphor/widgets": "^1.8.0"
   },
   "devDependencies": {
     "@types/webpack-env": "^1.13.9",
     "rimraf": "~2.6.2",
     "typedoc": "^0.14.2",
-    "typescript": "~3.5.1"
+    "typescript": "~3.5.1",
+    "vega": "^4.4.0",
+    "vega-embed": "^4.2.0",
+    "vega-lite": "^2.7.0",
+    "webpack": "^4.32.2"
   },
   "publishConfig": {
     "access": "public"

+ 1 - 0
packages/vega4-extension/src/built-vega-embed.d.ts

@@ -0,0 +1 @@
+export * from 'vega-embed';

+ 1 - 1
packages/vega4-extension/src/index.ts

@@ -186,7 +186,7 @@ namespace Private {
       return vegaReady;
     }
 
-    vegaReady = import('vega-embed');
+    vegaReady = import('./built-vega-embed') as any;
 
     return vegaReady;
   }

+ 12 - 0
packages/vega4-extension/webpack.config.js

@@ -0,0 +1,12 @@
+var path = require('path');
+
+module.exports = {
+  entry: 'vega-embed',
+  mode: 'production',
+  devtool: 'source-map',
+  output: {
+    path: path.resolve(__dirname, 'lib'),
+    filename: 'built-vega-embed.js',
+    libraryTarget: 'commonjs2'
+  }
+};

+ 4 - 4
packages/vega5-extension/package.json

@@ -36,16 +36,16 @@
   "dependencies": {
     "@jupyterlab/rendermime-interfaces": "^1.3.0-alpha.13",
     "@phosphor/coreutils": "^1.3.1",
-    "@phosphor/widgets": "^1.8.0",
-    "vega": "^5.4.0",
-    "vega-embed": "^4.2.0",
-    "vega-lite": "^3.3.0"
+    "@phosphor/widgets": "^1.8.0"
   },
   "devDependencies": {
     "@types/webpack-env": "^1.13.9",
     "rimraf": "~2.6.2",
     "typedoc": "^0.14.2",
     "typescript": "~3.5.1",
+    "vega": "^5.4.0",
+    "vega-embed": "^4.2.0",
+    "vega-lite": "^3.3.0",
     "webpack": "^4.32.2"
   },
   "publishConfig": {

+ 4 - 30
yarn.lock

@@ -4039,7 +4039,7 @@ d3-scale@^3.0.0:
     d3-time "1"
     d3-time-format "2"
 
-d3-selection@^1.3.0, d3-selection@^1.4.0:
+d3-selection@^1.4.0:
   version "1.4.0"
   resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.4.0.tgz#ab9ac1e664cf967ebf1b479cc07e28ce9908c474"
   integrity sha512-EYVwBxQGEjLCKF2pJ4+yrErskDnz5v403qvAid96cNdCMr8rmCYfY5RGzWz24mdIbxmDf6/4EAH+K9xperD5jg==
@@ -7151,11 +7151,6 @@ json-stable-stringify@^1.0.1:
   dependencies:
     jsonify "~0.0.0"
 
-json-stringify-pretty-compact@^1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/json-stringify-pretty-compact/-/json-stringify-pretty-compact-1.2.0.tgz#0bc316b5e6831c07041fc35612487fb4e9ab98b8"
-  integrity sha512-/11Pj1OyX814QMKO7K8l85SHPTr/KsFxHp8GE2zVa0BtJgGimDjXHfM3FhC7keQdWDea7+nXf+f1de7ATZcZkQ==
-
 json-stringify-pretty-compact@^2.0.0, json-stringify-pretty-compact@~2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/json-stringify-pretty-compact/-/json-stringify-pretty-compact-2.0.0.tgz#e77c419f52ff00c45a31f07f4c820c2433143885"
@@ -11690,20 +11685,6 @@ vega-dataflow@^5.1.0, vega-dataflow@^5.1.1, vega-dataflow@^5.2.1:
     vega-loader "^4.0.0"
     vega-util "^1.10.0"
 
-vega-embed@3.18.2:
-  version "3.18.2"
-  resolved "https://registry.yarnpkg.com/vega-embed/-/vega-embed-3.18.2.tgz#296fec71455bfcaff19a2adb56bf1155851a50ae"
-  integrity sha512-OQWRdII4DJgBocGLWiAu7yPFrqGHTxRc6jWnJY19BOdGKOCCBcdqTUmJx1tZw0KvA2YdW5GoNxDqO2cfwqivJw==
-  dependencies:
-    d3-selection "^1.3.0"
-    json-stringify-pretty-compact "^1.2.0"
-    semver "^5.5.0"
-    vega-lib "^4.0.0 || ^3.3.0"
-    vega-lite "^2.6.0"
-    vega-schema-url-parser "^1.1.0"
-    vega-themes "^2.1.1"
-    vega-tooltip "^0.12.0"
-
 vega-embed@^4.2.0:
   version "4.2.0"
   resolved "https://registry.yarnpkg.com/vega-embed/-/vega-embed-4.2.0.tgz#59e8478faa6e1e33d0eb601a5b98be9b79d4c4ad"
@@ -11832,7 +11813,7 @@ vega-hierarchy@^4.0.1:
     vega-dataflow "^5.1.0"
     vega-util "^1.8.0"
 
-vega-lib@4.4.0, "vega-lib@^4.0.0 || ^3.3.0":
+vega-lib@4.4.0:
   version "4.4.0"
   resolved "https://registry.yarnpkg.com/vega-lib/-/vega-lib-4.4.0.tgz#37d99514c5496a0ce001033bdacb504361ef6880"
   integrity sha512-bfOsO5wks+ctnJ94fIPWH/B0qocdFs4WZ8teIgjF7m5XE+EVln+1nq9Z+sV7wdw7vftzGg0GAx9UH/kJxyopKg==
@@ -11860,7 +11841,7 @@ vega-lib@4.4.0, "vega-lib@^4.0.0 || ^3.3.0":
     vega-voronoi "^3.0.0"
     vega-wordcloud "^3.0.0"
 
-vega-lite@^2.6.0, vega-lite@^2.7.0:
+vega-lite@^2.7.0:
   version "2.7.0"
   resolved "https://registry.yarnpkg.com/vega-lite/-/vega-lite-2.7.0.tgz#4535a2f8651f0d037b685131943d30f9fa5de6d1"
   integrity sha512-SqUDFD+1bHP6UgaFnI418XLW1ffcVMlQMdzI4Xh0HGjPKDPdLTF71iNjcTUwtTYt9rRLXRcRKdmCbBzuLtkg8g==
@@ -12041,18 +12022,11 @@ vega-statistics@^1.2.1, vega-statistics@^1.2.3, vega-statistics@^1.2.5, vega-sta
   dependencies:
     d3-array "^2.0.3"
 
-vega-themes@^2.1.1, vega-themes@^2.3.0:
+vega-themes@^2.3.0:
   version "2.3.0"
   resolved "https://registry.yarnpkg.com/vega-themes/-/vega-themes-2.3.0.tgz#d0a5a3f16af4baeae3e4f43a0b65d7c5479805b1"
   integrity sha512-C33RC/oB7NAMgAMdfiKy3Akwbn2uaTJSpmS3sRdiThbQxdhyh+iwc+horG4DWK7zYwJa8tITGbXknYoJXPkdIA==
 
-vega-tooltip@^0.12.0:
-  version "0.12.0"
-  resolved "https://registry.yarnpkg.com/vega-tooltip/-/vega-tooltip-0.12.0.tgz#014b21b08ea5fe14eb59c9b6643614c77a3b3e47"
-  integrity sha512-0a1gYQ5NjdVxzSm8ameZGnSocDAW9lB3h6e2Us5L2oTlU6tYI6et1+7qU1yRCycBuUQ/oAUsNbeINVwvsV9UIg==
-  dependencies:
-    vega-util "^1.7.0"
-
 vega-tooltip@^0.17.0:
   version "0.17.0"
   resolved "https://registry.yarnpkg.com/vega-tooltip/-/vega-tooltip-0.17.0.tgz#16bb5b57fb727823bb15f4ca4e350622471db2b9"