mirror of
https://github.com/microsoft/monaco-editor.git
synced 2024-11-25 16:35:44 +08:00
152 lines
3.6 KiB
TypeScript
152 lines
3.6 KiB
TypeScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
|
|
import * as webpack from "webpack";
|
|
import * as path from "path";
|
|
import * as HtmlWebpackPlugin from "html-webpack-plugin";
|
|
import { CleanWebpackPlugin } from "clean-webpack-plugin";
|
|
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
|
|
import * as CopyPlugin from "copy-webpack-plugin";
|
|
|
|
const r = (file: string) => path.resolve(__dirname, file);
|
|
|
|
module.exports = {
|
|
entry: {
|
|
index: r("src/website/index.tsx"),
|
|
playgroundRunner: r("src/runner/index.ts"),
|
|
monacoLoader: r("src/website/monaco-loader-chunk.ts"),
|
|
},
|
|
optimization: {
|
|
runtimeChunk: "single",
|
|
},
|
|
output: {
|
|
path: r("dist"),
|
|
devtoolModuleFilenameTemplate: "file:///[absolute-resource-path]",
|
|
},
|
|
resolve: {
|
|
extensions: [".webpack.js", ".web.js", ".ts", ".tsx", ".js"],
|
|
},
|
|
devtool: "source-map",
|
|
devServer: {
|
|
headers: {
|
|
"Access-Control-Allow-Origin": "*",
|
|
"Access-Control-Allow-Methods":
|
|
"GET, POST, PUT, DELETE, PATCH, OPTIONS",
|
|
"Access-Control-Allow-Headers":
|
|
"X-Requested-With, content-type, Authorization",
|
|
},
|
|
allowedHosts: "all",
|
|
watchFiles: [],
|
|
},
|
|
module: {
|
|
rules: [
|
|
{
|
|
test: /\.css$/,
|
|
use: [
|
|
/*"style-loader"*/ MiniCssExtractPlugin.loader,
|
|
"css-loader",
|
|
],
|
|
},
|
|
{
|
|
test: /\.scss$/,
|
|
use: [
|
|
/*"style-loader",*/ MiniCssExtractPlugin.loader,
|
|
"css-loader",
|
|
"sass-loader",
|
|
],
|
|
},
|
|
{
|
|
test: /\.(jpe?g|png|gif|eot|ttf|svg|woff|woff2|md)$/i,
|
|
loader: "file-loader",
|
|
},
|
|
{
|
|
test: /\.tsx?$/,
|
|
loader: "ts-loader",
|
|
options: { transpileOnly: true },
|
|
},
|
|
{ test: /\.txt$/i, use: "raw-loader" },
|
|
],
|
|
},
|
|
plugins: [
|
|
new webpack.DefinePlugin({
|
|
"process.env": {
|
|
YEAR: JSON.stringify(new Date().getFullYear()),
|
|
},
|
|
}),
|
|
new CleanWebpackPlugin(),
|
|
new MiniCssExtractPlugin({
|
|
filename: "[name].css",
|
|
chunkFilename: "[id].css",
|
|
}),
|
|
new HtmlWebpackPlugin({
|
|
chunks: ["monacoLoader", "index"],
|
|
templateContent: getHtml(),
|
|
chunksSortMode: "manual",
|
|
}),
|
|
new HtmlWebpackPlugin({
|
|
chunks: ["index"],
|
|
filename: "playground.html",
|
|
templateContent: getHtml(),
|
|
}),
|
|
new HtmlWebpackPlugin({
|
|
chunks: ["playgroundRunner"],
|
|
filename: "playgroundRunner.html",
|
|
templateContent: getHtml(),
|
|
}),
|
|
new HtmlWebpackPlugin({
|
|
chunks: ["index"],
|
|
filename: "docs.html",
|
|
templateContent: getHtml(),
|
|
}),
|
|
new HtmlWebpackPlugin({
|
|
chunks: ["index"],
|
|
filename: "monarch.html",
|
|
templateContent: getHtml(),
|
|
}),
|
|
new CopyPlugin({
|
|
patterns: [{ from: "./static", to: "./" }],
|
|
}),
|
|
new CopyPlugin({
|
|
patterns: [{ from: "./typedoc/dist", to: "./typedoc/" }],
|
|
}),
|
|
new CopyPlugin({
|
|
patterns: [
|
|
{
|
|
from: "./node_modules/monaco-editor/",
|
|
to: "./node_modules/monaco-editor/",
|
|
// This disables minification for js files
|
|
info: { minimized: true },
|
|
},
|
|
],
|
|
}),
|
|
new CopyPlugin({
|
|
patterns: [
|
|
{
|
|
from: "../node_modules/monaco-editor-core/",
|
|
to: "./node_modules/monaco-editor-core/",
|
|
// This disables minification for js files
|
|
info: { minimized: true },
|
|
},
|
|
],
|
|
}),
|
|
new CopyPlugin({
|
|
patterns: [{ from: "../out/languages/", to: "./out/languages/" }],
|
|
}),
|
|
],
|
|
} as webpack.Configuration;
|
|
|
|
function getHtml(): string {
|
|
return `
|
|
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>Monaco Editor</title>
|
|
</head>
|
|
<body>
|
|
</body>
|
|
</html>`;
|
|
}
|