title: Jupyter lab build fails on fresh Azure Data Science VM (linux)
body: <p>as the title says, i created a new data Science VM (Ubuntu), and running <code>jupyter build</code> fails even with just the default jupyter hub extension.</p>
  
  <p>I only installed two other packages before trying this: Azure storage and pyarrow for the reading of Parquet files. Neither of these should have affected jupyter.</p>
  
  <p>The configuration is a Standard B4ms instance, but i tried another configuration and it had the same issue.</p>
  
  <p>The environment is the default py35 conda env. Jupyter is not installed in the root env.<br>
  Updating Jupyter or jupyter lab or ipython doesn't help.</p>
  
  <p>Here is the complete output:</p>
  
  <pre><code>   (py35) user@VM:~$ jupyter lab build
  [LabBuildApp] JupyterLab 0.34.12
  [LabBuildApp] Building in /data/anaconda/envs/py35/share/jupyter/lab
  [LabBuildApp] &gt; node /data/anaconda/envs/py35/lib/python3.5/site-packages/jupyterlab/staging/yarn.js install
  yarn install v1.9.4
  info No lockfile found.
  [1/4] Resolving packages...
  warning css-loader &gt; cssnano &gt; autoprefixer &gt; browserslist@1.7.7: Browserslist 2 could fail on reading Browserslist &gt;3.0 config used in other tools.
  warning css-loader &gt; cssnano &gt; postcss-merge-rules &gt; browserslist@1.7.7: Browserslist 2 could fail on reading Browserslist &gt;3.0 config used in other tools.
  warning css-loader &gt; cssnano &gt; postcss-merge-rules &gt; caniuse-api &gt; browserslist@1.7.7: Browserslist 2 could fail on reading Browserslist &gt;3.0 config used in other tools.
  [2/4] Fetching packages...
  [------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------] 0/822(node:4101) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
  info fsevents@1.2.7: The platform "linux" is incompatible with this module.
  info "fsevents@1.2.7" is an optional dependency and failed compatibility check. Excluding it from installation.
  [3/4] Linking dependencies...
  warning "@jupyterlab/vdom-extension &gt; @nteract/transform-vdom@1.1.1" has incorrect peer dependency "react@^15.6.1".
  [4/4] Building fresh packages...
  success Saved lockfile.
  Done in 30.67s.
  [LabBuildApp] &gt; node /data/anaconda/envs/py35/lib/python3.5/site-packages/jupyterlab/staging/yarn.js run build
  yarn run v1.9.4
  $ webpack
  ModuleNotFoundError: Module not found: Error: Can't resolve 'vega' in '/data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/vega-lite/build/src/compile'
      at factory.create (/data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/webpack/lib/Compilation.js:535:10)
      at factory (/data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/webpack/lib/NormalModuleFactory.js:397:22)
      at resolver (/data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/webpack/lib/NormalModuleFactory.js:130:21)
      at asyncLib.parallel (/data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/webpack/lib/NormalModuleFactory.js:224:22)
      at /data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/neo-async/async.js:2825:7
      at /data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/neo-async/async.js:6886:13
      at normalResolver.resolve (/data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/webpack/lib/NormalModuleFactory.js:214:25)
      at doResolve (/data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/enhanced-resolve/lib/Resolver.js:184:12)
      at hook.callAsync (/data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/enhanced-resolve/lib/Resolver.js:238:5)
      at _fn0 (eval at create (/data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/tapable/lib/HookCodeFactory.js:32:10), &lt;anonymous&gt;:15:1)
      at resolver.doResolve (/data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/enhanced-resolve/lib/UnsafeCachePlugin.js:37:5)
      at hook.callAsync (/data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/enhanced-resolve/lib/Resolver.js:238:5)
      at _fn0 (eval at create (/data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/tapable/lib/HookCodeFactory.js:32:10), &lt;anonymous&gt;:15:1)
      at hook.callAsync (/data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/enhanced-resolve/lib/Resolver.js:238:5)
      at _fn0 (eval at create (/data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/tapable/lib/HookCodeFactory.js:32:10), &lt;anonymous&gt;:12:1)
      at resolver.doResolve (/data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/enhanced-resolve/lib/DescriptionFilePlugin.js:42:38)
      at hook.callAsync (/data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/enhanced-resolve/lib/Resolver.js:238:5)
      at _fn41 (eval at create (/data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/tapable/lib/HookCodeFactory.js:32:10), &lt;anonymous&gt;:381:1)
      at resolver.doResolve (/data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/enhanced-resolve/lib/ModuleKindPlugin.js:23:37)
      at hook.callAsync (/data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/enhanced-resolve/lib/Resolver.js:238:5)
      at _fn0 (eval at create (/data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/tapable/lib/HookCodeFactory.js:32:10), &lt;anonymous&gt;:15:1)
      at hook.callAsync (/data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/enhanced-resolve/lib/Resolver.js:238:5)
      at _fn0 (eval at create (/data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/tapable/lib/HookCodeFactory.js:32:10), &lt;anonymous&gt;:15:1)
      at args (/data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/enhanced-resolve/lib/forEachBail.js:30:14)
      at hook.callAsync (/data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/enhanced-resolve/lib/Resolver.js:238:5)
      at _fn0 (eval at create (/data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/tapable/lib/HookCodeFactory.js:32:10), &lt;anonymous&gt;:15:1)
      at resolver.doResolve (/data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/enhanced-resolve/lib/UnsafeCachePlugin.js:37:5)
      at hook.callAsync (/data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/enhanced-resolve/lib/Resolver.js:238:5)
      at _fn0 (eval at create (/data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/tapable/lib/HookCodeFactory.js:32:10), &lt;anonymous&gt;:15:1)
      at hook.callAsync (/data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/enhanced-resolve/lib/Resolver.js:238:5)
  resolve 'vega' in '/data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/vega-lite/build/src/compile'
    Parsed request is a module
    using description file: /data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/vega-lite/build/package.json (relative path: ./src/compile)
      Field 'browser' doesn't contain a valid alias configuration
      resolve as module
        /data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/vega-lite/build/src/compile/node_modules doesn't exist or is not a directory
        /data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/vega-lite/build/src/node_modules doesn't exist or is not a directory
        /data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/vega-lite/build/node_modules doesn't exist or is not a directory
        /data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/node_modules doesn't exist or is not a directory
        /data/anaconda/envs/py35/share/jupyter/lab/node_modules doesn't exist or is not a directory
        /data/anaconda/envs/py35/share/jupyter/node_modules doesn't exist or is not a directory
        /data/anaconda/envs/py35/share/node_modules doesn't exist or is not a directory
        /data/anaconda/envs/py35/node_modules doesn't exist or is not a directory
        /data/anaconda/envs/node_modules doesn't exist or is not a directory
        /data/anaconda/node_modules doesn't exist or is not a directory
        /data/node_modules doesn't exist or is not a directory
        /node_modules doesn't exist or is not a directory
        looking for modules in /data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/vega-lite/node_modules
          using description file: /data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/vega-lite/package.json (relative path: ./node_modules)
            Field 'browser' doesn't contain a valid alias configuration
        looking for modules in /data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules
          using description file: /data/anaconda/envs/py35/share/jupyter/lab/staging/package.json (relative path: ./node_modules)
            Field 'browser' doesn't contain a valid alias configuration
            using description file: /data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/vega-lite/package.json (relative path: ./node_modules/vega)
              no extension
                Field 'browser' doesn't contain a valid alias configuration
            using description file: /data/anaconda/envs/py35/share/jupyter/lab/staging/package.json (relative path: ./node_modules/vega)
              no extension
                Field 'browser' doesn't contain a valid alias configuration
                /data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/vega-lite/node_modules/vega doesn't exist
              .wasm
                Field 'browser' doesn't contain a valid alias configuration
                /data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/vega doesn't exist
              .wasm
                Field 'browser' doesn't contain a valid alias configuration
                /data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/vega-lite/node_modules/vega.wasm doesn't exist
              .mjs
                Field 'browser' doesn't contain a valid alias configuration
                /data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/vega.wasm doesn't exist
              .mjs
                Field 'browser' doesn't contain a valid alias configuration
                /data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/vega-lite/node_modules/vega.mjs doesn't exist
              .js
                Field 'browser' doesn't contain a valid alias configuration
                /data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/vega.mjs doesn't exist
              .js
                Field 'browser' doesn't contain a valid alias configuration
                /data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/vega-lite/node_modules/vega.js doesn't exist
              .json
                Field 'browser' doesn't contain a valid alias configuration
                /data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/vega.js doesn't exist
              .json
                Field 'browser' doesn't contain a valid alias configuration
                /data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/vega-lite/node_modules/vega.json doesn't exist
                /data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/vega.json doesn't exist
              as directory
                /data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/vega-lite/node_modules/vega doesn't exist
              as directory
                /data/anaconda/envs/py35/share/jupyter/lab/staging/node_modules/vega doesn't exist
  error Command failed with exit code 1.
  info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
  </code></pre>