浏览代码

Add a node version check

Steven Silvester 7 年之前
父节点
当前提交
2a0af1d776
共有 4 个文件被更改,包括 24 次插入0 次删除
  1. 6 0
      README.md
  2. 11 0
      jupyterlab/commands.py
  3. 1 0
      jupyterlab/labextensions.py
  4. 6 0
      scripts/node-version-check.js

+ 6 - 0
README.md

@@ -85,6 +85,12 @@ Note: If installing using `pip install --user`, you must add the user-level
  `bin` directory to your `PATH` environment variable in order to launch
  `jupyter lab`.
 
+
+## Extensions
+
+The JupyterLab environment can be extended using extensions.  See documentation
+for [users](https://jupyterlab-tutorial.readthedocs.io/en/latest/extensions_user.html) and [developers](https://jupyterlab-tutorial.readthedocs.io/en/latest/extensions_dev.html).
+
 ----
 
 ## Contributing

+ 11 - 0
jupyterlab/commands.py

@@ -215,6 +215,16 @@ def disable_extension(extension, app_dir=None, logger=None):
     _toggle_extension(extension, True, app_dir, logger)
 
 
+def check_node():
+    """Check for the existence of node and whether it is the right version.
+    """
+    try:
+        scripts = os.path.abspath(os.path.join(here, '../scripts'))
+        run(['node', 'node-version-check.js'], cwd=scripts)
+    except Exception:
+        raise ValueError('`node` version 5+ is required, see extensions in README')
+
+
 def should_build(app_dir=None, logger=None):
     """Determine whether JupyterLab should be built.
 
@@ -430,6 +440,7 @@ def clean(app_dir=None):
 def build(app_dir=None, name=None, version=None, logger=None):
     """Build the JupyterLab application."""
     # Set up the build directory.
+    check_node()
     logger = logger or logging
     app_dir = get_app_dir(app_dir)
     if app_dir == here:

+ 1 - 0
jupyterlab/labextensions.py

@@ -52,6 +52,7 @@ class InstallLabExtensionApp(BaseExtensionApp):
         help="Whether to build the app after the action")
 
     def start(self):
+        check_node()
         self.extra_args = self.extra_args or [os.getcwd()]
         [install_extension(arg, self.app_dir, logger=self.log)
          for arg in self.extra_args]

+ 6 - 0
scripts/node-version-check.js

@@ -0,0 +1,6 @@
+#!/usr/bin/env node
+var semver = require('semver');
+
+if (!semver.satisfies(semver(process.version), '>=5')) {
+  process.exit(1);
+}