title: Can't require('electron') successfully when build and run vscode source code
body: <p>I'm running vscode from source code and following the steps:</p>
  <ol>
  <li>download vscode source code (version:1.63.0)</li>
  </ol>
  <pre><code> &quot;name&quot;: &quot;code-oss-dev&quot;,
   &quot;version&quot;: &quot;1.63.0&quot;,
   &quot;distro&quot;: &quot;1aa3ab55b3cceca22ca6d647dc0095d562d23c8d&quot;,
  </code></pre>
  <ol start="2">
  <li>run <code>yarn</code> to install packages.</li>
  <li>run <code>yarn watch</code> to build and finished successfully.</li>
  </ol>
  <pre><code>......
  [watch-extensions] [23:54:02] Finished webpacking extension media markdown-language-features with 0 errors.
  [watch-extensions] [23:54:02] Finished webpacking extension media simple-browser with 0 errors.
  [watch-extensions] [23:54:14] Finished compilation extensions with 0 errors after 44266 ms
  [watch-client    ] [23:55:24] Finished compilation with 0 errors after 111430 ms
  </code></pre>
  <ol start="4">
  <li>run <code>./scripts/code.sh</code> to launch but failed.</li>
  </ol>
  <pre><code>localhost:vscode-main$ ./scripts/code.sh 
  yarn run v1.22.10
  $ node build/lib/electron
  ✨  Done in 3.27s.
  [00:00:37] Syncronizing built-in extensions...
  [00:00:37] You can manage built-in extensions with the --builtin flag
  [00:00:38] Downloading extension: ms-vscode.references-view@0.0.81 ...
  [00:00:38] Downloading extension: ms-vscode.js-debug-companion@1.0.15 ...
  [00:00:38] Downloading extension: ms-vscode.js-debug@1.62.0 ...
  [00:00:38] Downloading extension: ms-vscode.vscode-js-profile-table@0.0.18 ...
  [00:00:38] [marketplace] ms-vscode.vscode-js-profile-table ✔︎
  [00:00:38] [marketplace] ms-vscode.references-view ✔︎
  [00:00:38] [marketplace] ms-vscode.js-debug-companion ✔︎
  [00:00:39] [marketplace] ms-vscode.js-debug ✔︎
  /Users/xxx/vscode-main/out/main.js:28
  app.allowRendererProcessReuse = false;
                                ^
  
  TypeError: Cannot set property 'allowRendererProcessReuse' of undefined
      at Object.&lt;anonymous&gt; (/Users/xxx/vscode-main/out/main.js:28:31)
      at Module._compile (internal/modules/cjs/loader.js:1078:30)
      at Object.Module._extensions..js (internal/modules/cjs/loader.js:1108:10)
      at Module.load (internal/modules/cjs/loader.js:935:32)
      at Module._load (internal/modules/cjs/loader.js:776:14)
      at Function.f._load (electron/js2c/asar_bundle.js:5:12913)
      at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
      at internal/main/run_main_module.js:17:47
  </code></pre>
  <p>relative code in main.js is</p>
  <pre><code>const { app, protocol, crashReporter } = require('electron');
  
  app.allowRendererProcessReuse = false;
  </code></pre>
  <hr />
  <p>I add a log</p>
  <pre><code>......
  const { app, protocol, crashReporter } = require('electron');
  const abc = require('electron'); //added
  console.log(abc); //added
  console.log('isString?', typeof abc === 'string'); //added
  app.allowRendererProcessReuse = false;
  </code></pre>
  <p>the result is</p>
  <pre><code>localhost:vscode-main$ ./scripts/code.sh 
  yarn run v1.22.10
  $ node build/lib/electron
  ✨  Done in 2.07s.
  [00:11:51] Syncronizing built-in extensions...
  [00:11:51] You can manage built-in extensions with the --builtin flag
  [00:11:51] [marketplace] ms-vscode.references-view@0.0.81 ✔︎
  [00:11:51] [marketplace] ms-vscode.js-debug-companion@1.0.15 ✔︎
  [00:11:51] [marketplace] ms-vscode.js-debug@1.62.0 ✔︎
  [00:11:51] [marketplace] ms-vscode.vscode-js-profile-table@0.0.18 ✔︎
  /Users/xxx/vscode-main/node_modules/electron/dist/Electron.app/Contents/MacOS/Electron
  isString? true
  /Users/xxx/vscode-main/out/main.js:30
  app.allowRendererProcessReuse = false;
                                ^
  
  TypeError: Cannot set property 'allowRendererProcessReuse' of undefined
      at Object.&lt;anonymous&gt; (/Users/xxx/vscode-main/out/main.js:30:31)
  </code></pre>
  <p>why require('electron') is parsed into a string here?</p>