import * as path from "path"; import * as config_base from "./webpack.config"; export = () => config_base.config("client").then(config => { Object.assign(config.entry, { "client-app": ["./client/app/index.ts"] }); Object.assign(config.resolve.alias, { "tc-shared": path.resolve(__dirname, "shared/js"), /* backend hasn't declared but its available via "require()" */ "tc-backend": path.resolve(__dirname, "shared/backend.d"), }); if(!Array.isArray(config.externals)) throw "invalid config"; config.externals.push(({ context, request }, callback) => { if (request.startsWith("tc-backend/")) { return callback(null, `window["backend-loader"].require("${request}")`); } callback(undefined, undefined); }); config.externals.push({ "jquery": "window.$" }); config.externals.push({ "jsrender": "window.$" }); return Promise.resolve(config); });