code-server/packages/vscode/webpack.bootstrap.config.js

78 lines
2.8 KiB
JavaScript

const path = require("path");
const merge = require("webpack-merge");
const root = path.resolve(__dirname, "../..");
const fills = path.join(root, "packages/ide/src/fill");
const vsFills = path.join(root, "packages/vscode/src/fill");
module.exports = merge(
require(path.join(root, "scripts/webpack.node.config.js"))({
typescriptCompilerOptions: {
target: "es6",
},
}), {
entry: path.join(root, "lib/vscode/src/bootstrap-fork.js"),
mode: "development",
output: {
chunkFilename: "[name].bundle.js",
path: path.resolve(__dirname, "out"),
publicPath: "/",
filename: "bootstrap-fork.js",
libraryTarget: "commonjs",
globalObject: "this",
},
// Due to the dynamic `require.context` we add to `loader.js` Webpack tries
// to include way too much. We can modify what Webpack imports in this case
// (I believe), but for now ignore some things.
module: {
rules: [{
test: /\.(txt|d\.ts|perf\.data\.js|jxs|scpt|exe|sh|less|html|s?css|qwoff|md|svg|png|ttf|woff|eot|woff2)$/,
use: [{
loader: "ignore-loader",
}],
}, {
test: /test|tsconfig/,
use: [{
loader: "ignore-loader",
}],
}, {
// The only thing we need in electron-browser is the shared process (including contrib).
test: /((\\|\/)vs(\\|\/)code(\\|\/)electron-main(\\|\/))|((\\|\/)test(\\|\/))|(OSSREADME\.json$)|\/browser\/|\/electron-browser\/(?!sharedProcess\/).+\//,
use: [{
loader: "ignore-loader",
}],
}],
noParse: /(\\|\/)test(\\|\/)|\.test\.jsx?|\.test\.tsx?|tsconfig.+\.json$/,
},
resolve: {
alias: {
"gc-signals": path.join(fills, "empty.ts"),
"node-pty": path.resolve(fills, "empty.ts"),
"windows-mutex": path.resolve(fills, "empty.ts"),
"windows-process-tree": path.resolve(fills, "empty.ts"),
"vscode-windows-registry": path.resolve(fills, "empty.ts"),
"vscode-windows-ca-certs": path.resolve(fills, "empty.ts"),
"vscode-sqlite3": path.resolve(fills, "empty.ts"),
"vs/base/browser/browser": path.resolve(fills, "empty.ts"),
"electron": path.join(vsFills, "stdioElectron.ts"),
"vscode-ripgrep": path.join(vsFills, "ripgrep.ts"),
"native-keymap": path.join(vsFills, "native-keymap.ts"),
"native-watchdog": path.join(vsFills, "native-watchdog.ts"),
"vs/base/common/amd": path.resolve(vsFills, "amd.ts"),
"vs/base/node/paths": path.join(vsFills, "paths.ts"),
"vs/platform/product/node/package": path.resolve(vsFills, "package.ts"),
"vs/platform/product/node/product": path.resolve(vsFills, "product.ts"),
"vs/base/node/zip": path.resolve(vsFills, "zip.ts"),
"vszip": path.resolve(root, "lib/vscode/src/vs/base/node/zip.ts"),
"vs": path.resolve(root, "lib/vscode/src/vs"),
},
},
resolveLoader: {
alias: {
"vs/css": path.resolve(vsFills, "css.js"),
},
},
}
);