text: const path = require('path')
  
  let entryPlugin = {
    name: 'entry',
    setup(build) {
      build.onResolve({filter: /^(index|server)\.ts$/}, args => {
        return {
          path: args.path,
          namespace: 'entry-ns'
        }
      })
      build.onLoad({filter: /.*/, namespace: 'entry-ns'}, args => {
        let contents = ''
        if (args.path == 'index.ts') {
          contents = `
          import {activate} from './src/index'
          export {activate}
          `
        } else if (args.path == 'server.ts') {
          contents = `require('./server/node/jsonServerMain')`
        } else {
          throw new Error('Bad path')
        }
        return {
          contents,
          resolveDir: __dirname
        }
      })
    }
  }
  
  async function start() {
    await require('esbuild').build({
      entryPoints: ['src/index.ts'],
      define: {'process.env.NODE_ENV': JSON.stringify("production")},
      bundle: true,
      platform: 'node',
      target: 'node12.16',
      mainFields: ['module', 'main'],
      minify: true,
      sourcemap: true,
      external: ['coc.nvim'],
      outdir: path.resolve(__dirname, 'lib'),
      // plugins: [entryPlugin]
    })
  }
  
  start().catch(e => {
    console.error(e)
  })
  