Browse Source

build system improvements

Steven Silvester 7 years ago
parent
commit
b4212a6cd2
1 changed files with 9 additions and 1 deletions
  1. 9 1
      jupyterlab/commands.py

+ 9 - 1
jupyterlab/commands.py

@@ -52,7 +52,8 @@ def get_app_dir(app_dir=None):
     app_dir = pjoin(sys.prefix, 'share', 'jupyter', 'lab')
 
     # Check for a user level install.
-    if hasattr(site, 'getuserbase') and here.startswith(site.getuserbase()):
+    userbase = getattr(site, 'userbase', '')
+    if here.startswith(userbase) and not app_dir.startswith(userbase):
         app_dir = pjoin(site.getuserbase(), 'share', 'jupyter', 'lab')
 
     # Check for a system install in '/usr/local/share'.
@@ -154,6 +155,7 @@ def install_extension_async(extension, app_dir=None, logger=None, abort_callback
 
     # Run npm install if needed
     if (os.path.exists(extension) and
+            os.path.isdir(extension) and
             not os.path.exists(pjoin(extension, 'node_modules'))):
         yield run([get_npm_name(), 'install'], cwd=extension, logger=logger,
                   abort_callback=abort_callback)
@@ -209,6 +211,10 @@ def install_extension_async(extension, app_dir=None, logger=None, abort_callback
     shutil.move(pjoin(target, fname), pjoin(app_dir, 'extensions'))
     shutil.rmtree(target)
 
+    # Remove any existing package from staging/node_modules to force
+    # npm to re-install it from the tarball.
+    target = pjoin(app_dir, 'staging', 'node_modules', data['name'])
+
 
 def link_package(path, app_dir=None, logger=None):
     """Link a package against the JupyterLab build."""
@@ -901,6 +907,8 @@ def _get_package_template(app_dir, logger):
             data['jupyterlab']['extensions'].pop(item)
         else:
             data['jupyterlab']['mimeExtensions'].pop(item)
+        # Remove from dependencies as well.
+        data['dependencies'].pop(item)
 
     return data