Webpack с настройкой узла клиент / сервер?

Я пытаюсь настроить поток на основе веб-пакета для приложения Angular2 с внутренним сервером узла. После многих часов ударившись головой об этом, мне удалось заставить клиента успешно строить, но я не могу понять, как теперь интегрировать сборку моего сервера. Мой сервер использует генераторы, поэтому должен быть нацелен на ES6, и он должен указывать на другой файл наборов (main.d.ts вместо browser.d.ts).

Мое исходное дерево выглядит так;

/
-- client/
-- -- <all my angular2 bits> (*.ts)
-- server/
-- -- <all my node/express bits> (*.ts)
-- webpack.config.js
-- typings/
-- -- browser.d.ts
-- -- main.d.ts

Я думал, что, возможно, просто tsconfig.json в папках клиента и сервера будет работать, но не повезло. Я также не могу найти способ заставить html-webpack-plugin игнорировать мой серверный пакет и не внедрять его в index.html. Мои текущие tsconfig и webpack приведены ниже, но кому-нибудь удалось заставить webpack объединить настройки, подобные этой? Любые указатели будут высоко оценены.

{
    "compilerOptions": {
        "target": "es5",
        "module": "commonjs",
        "moduleResolution": "node",
        "sourceMap": true,
        "declaration": false,
        "removeComments": true,
        "noEmitHelpers": false,
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true
    },
    "files": [
        "typings/browser.d.ts",
        "client/app.ts",
        "client/bootstrap.ts",
        "client/polyfills.ts"
    ]
}

и мой webpack.config.js;

var Webpack = require('webpack');
var HtmlWebpackPlugin  = require('html-webpack-plugin');
var Path = require('path');

module.exports = {
  entry: {
    'polyfills': Path.join(__dirname, 'client', 'polyfills.ts'),
    'client': Path.join(__dirname, 'client', 'bootstrap.ts')
  },
  output: {
    path:     Path.join(__dirname, 'dist'),
    filename: '[name].bundle.js'
  },
  resolve: {
    extensions: ['', '.js', '.json', '.ts']
  },
  module: {
    loaders: [
      {
        test: /\.ts$/,
        loader: 'ts-loader',
        query: {
          ignoreDiagnostics: [
            2403, // 2403 -> Subsequent variable declarations
            2300, // 2300 -> Duplicate identifier
            2374, // 2374 -> Duplicate number index signature
            2375, // 2375 -> Duplicate string index signature
          ]
        }
      },
      { test: /\.json$/, loader: 'raw' },
      { test: /\.html$/, loader: 'raw' },
      { test: /\.css$/, loader: 'raw!postcss' },
      { test: /\.less$/, loSWE: 'raw!postcss!less' }
    ]
  },
  plugins: [
    new HtmlWebpackPlugin({ template: 'client/index.html', filename: 'index.html' }),
    new Webpack.optimize.CommonsChunkPlugin('common', 'common.bundle.js')
  ]
};

Ответы на вопрос(1)

Ваш ответ на вопрос