Afshin T. Darian 5 年之前
父節點
當前提交
ff3c21c5dc
共有 5 個文件被更改,包括 778 次插入152 次删除
  1. 738 146
      buildutils/package-lock.json
  2. 3 1
      buildutils/package.json
  3. 32 0
      buildutils/src/ensure-max-old-space.ts
  4. 4 4
      dev_mode/package.json
  5. 1 1
      yarn.lock

文件差異過大導致無法顯示
+ 738 - 146
buildutils/package-lock.json


+ 3 - 1
buildutils/package.json

@@ -23,6 +23,7 @@
   "main": "lib/index.js",
   "types": "lib/index.d.ts",
   "bin": {
+    "ensure-max-old-space": "./lib/ensure-max-old-space.js",
     "get-dependency": "./lib/get-dependency.js",
     "remove-dependency": "./lib/remove-dependency.js",
     "update-dependency": "./lib/update-dependency.js",
@@ -55,7 +56,8 @@
     "semver": "^6.3.0",
     "sort-package-json": "~1.31.0",
     "typescript": "~3.7.3",
-    "webpack": "^4.41.2"
+    "webpack": "^4.41.2",
+    "which": "^2.0.2"
   },
   "devDependencies": {
     "@types/duplicate-package-checker-webpack-plugin": "^2.1.0",

+ 32 - 0
buildutils/src/ensure-max-old-space.ts

@@ -0,0 +1,32 @@
+#!/usr/bin/env node
+/*-----------------------------------------------------------------------------
+| Copyright (c) Jupyter Development Team.
+| Distributed under the terms of the Modified BSD License.
+|----------------------------------------------------------------------------*/
+
+/**
+ * This file is a temporary workaround to ensure that we can set
+ * max_old_space by default but allow others to override it.
+ *
+ * When node 10 support is dropped, we can remove this file as node 12
+ * should just grow as required.
+ *
+ * See: https://github.com/jupyterlab/jupyterlab/issues/7175
+ *
+ * @example
+ * node ensure-max-old-space.js real-cli.js arg1 arg2
+ */
+import { execFileSync } from 'child_process';
+import * as which from 'which';
+
+const MAX_OLD_SPACE = '--max_old_space_size=4096';
+
+if (!process.env.NODE_OPTIONS) {
+  process.env.NODE_OPTIONS = MAX_OLD_SPACE;
+} else if (!/--max[_\-]old[_\-]space[_\-]size/.test(process.env.NODE_OPTIONS)) {
+  process.env.NODE_OPTIONS += ` ${MAX_OLD_SPACE}`;
+}
+
+const program = which.sync(process.argv[2]);
+const args = process.argv.slice(3);
+execFileSync(program, args, { env: process.env, stdio: 'inherit' });

+ 4 - 4
dev_mode/package.json

@@ -6,10 +6,10 @@
     "build": "webpack",
     "build:dev": "jlpm run build",
     "build:dev:minimize": "jlpm run build:dev",
-    "build:prod": "webpack --config webpack.prod.config.js",
-    "build:prod:minimize": "webpack --config webpack.prod.minimize.config.js",
-    "build:prod:release": "webpack --config webpack.prod.release.config.js",
-    "build:prod:stats": "webpack --profile --config webpack.prod.minimize.config.js --json > stats.json",
+    "build:prod": "ensure-max-old-space webpack --config webpack.prod.config.js",
+    "build:prod:minimize": "ensure-max-old-space webpack --config webpack.prod.minimize.config.js",
+    "build:prod:release": "ensure-max-old-space webpack --config webpack.prod.release.config.js",
+    "build:prod:stats": "ensure-max-old-space webpack --profile --config webpack.prod.minimize.config.js --json > stats.json",
     "build:stats": "webpack --profile --json > stats.json",
     "clean": "rimraf build",
     "prepublishOnly": "npm run build",

+ 1 - 1
yarn.lock

@@ -15954,7 +15954,7 @@ which@1.3.1, which@^1.1.1, which@^1.2.1, which@^1.2.14, which@^1.2.9, which@^1.3
   dependencies:
     isexe "^2.0.0"
 
-which@^2.0.1:
+which@^2.0.1, which@^2.0.2:
   version "2.0.2"
   resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
   integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==

部分文件因文件數量過多而無法顯示