aboutsummaryrefslogtreecommitdiff
path: root/webpack.config.js
diff options
context:
space:
mode:
Diffstat (limited to 'webpack.config.js')
-rw-r--r--webpack.config.js162
1 files changed, 84 insertions, 78 deletions
diff --git a/webpack.config.js b/webpack.config.js
index 5a954db19..01625988c 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -1,38 +1,38 @@
-var path = require('path');
-var webpack = require('webpack');
-const CopyWebpackPlugin = require("copy-webpack-plugin");
+const path = require('path');
+const webpack = require('webpack');
+const CopyWebpackPlugin = require('copy-webpack-plugin');
const HtmlWebpackPlugin = require('html-webpack-plugin');
-const ForkTsCheckerWebpackPlugin = require("fork-ts-checker-webpack-plugin");
+const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin');
const plugins = [
- new CopyWebpackPlugin([{
- from: "deploy",
- to: path.join(__dirname, "build")
- }]),
+ new CopyWebpackPlugin([
+ {
+ from: 'deploy',
+ to: path.join(__dirname, 'build'),
+ },
+ ]),
new HtmlWebpackPlugin({
title: 'Caching',
}),
new ForkTsCheckerWebpackPlugin({
tslint: true,
// memoryLimit: 4096,
- useTypescriptIncrementalApi: true
+ useTypescriptIncrementalApi: true,
}),
- new webpack.ProvidePlugin({ Buffer: ['buffer', 'Buffer'], }),
- new webpack.ProvidePlugin({ process: 'process/browser', }),
+ new webpack.ProvidePlugin({ Buffer: ['buffer', 'Buffer'] }),
+ new webpack.ProvidePlugin({ process: 'process/browser' }),
new webpack.HotModuleReplacementPlugin(),
];
function transferEnvironmentVariables() {
- const prefix = "_CLIENT_";
- const {
- parsed
- } = require('dotenv').config();
+ const prefix = '_CLIENT_';
+ const { parsed } = require('dotenv').config();
if (!parsed) {
return;
}
const resolvedClientSide = Object.keys(parsed).reduce((mapping, envKey) => {
if (envKey.startsWith(prefix)) {
- mapping[`process.env.${envKey.replace(prefix, "")}`] = JSON.stringify(parsed[envKey]);
+ mapping[`process.env.${envKey.replace(prefix, '')}`] = JSON.stringify(parsed[envKey]);
}
return mapping;
}, {});
@@ -44,18 +44,18 @@ transferEnvironmentVariables();
module.exports = {
mode: 'development',
entry: {
- bundle: ["./src/client/views/Main.tsx", 'webpack-hot-middleware/client?reload=true'],
- viewer: ["./src/debug/Viewer.tsx", 'webpack-hot-middleware/client?reload=true'],
- repl: ["./src/debug/Repl.tsx", 'webpack-hot-middleware/client?reload=true'],
- test: ["./src/debug/Test.tsx", 'webpack-hot-middleware/client?reload=true'],
- inkControls: ["./src/mobile/InkControls.tsx", 'webpack-hot-middleware/client?reload=true'],
- mobileInterface: ["./src/client/views/Main.tsx", 'webpack-hot-middleware/client?reload=true'],
+ bundle: ['./src/client/views/Main.tsx', 'webpack-hot-middleware/client?reload=true'],
+ viewer: ['./src/debug/Viewer.tsx', 'webpack-hot-middleware/client?reload=true'],
+ repl: ['./src/debug/Repl.tsx', 'webpack-hot-middleware/client?reload=true'],
+ test: ['./src/debug/Test.tsx', 'webpack-hot-middleware/client?reload=true'],
+ inkControls: ['./src/mobile/InkControls.tsx', 'webpack-hot-middleware/client?reload=true'],
+ mobileInterface: ['./src/client/views/Main.tsx', 'webpack-hot-middleware/client?reload=true'],
},
- devtool: "source-map",
+ devtool: 'source-map',
output: {
- filename: "[name].js",
- path: path.resolve(__dirname, "build"),
- publicPath: "/",
+ filename: '[name].js',
+ path: path.resolve(__dirname, 'build'),
+ publicPath: '/',
},
resolve: {
extensions: ['.js', '.ts', '.tsx'],
@@ -68,67 +68,73 @@ module.exports = {
crypto: false,
assert: false,
os: false,
- path: require.resolve("path-browserify"),
- http: require.resolve("http-browserify"),
- https: require.resolve("https-browserify"),
- stream: require.resolve("stream-browserify"),
- buffer: require.resolve("buffer")
- }
+ path: require.resolve('path-browserify'),
+ http: require.resolve('http-browserify'),
+ https: require.resolve('https-browserify'),
+ stream: require.resolve('stream-browserify'),
+ buffer: require.resolve('buffer'),
+ },
},
module: {
- rules: [{
- test: [/\.tsx?$/],
- use: [{
- loader: 'ts-loader',
- options: {
- transpileOnly: true
- }
- }]
- },
- {
- test: /\.m?js/,
- resolve: {
- fullySpecified: false
- }
- },
- {
- test: /\.(woff|woff2|ttf|eot|otf|svg)$/,
- use: 'file-loader?name=fonts/[name].[ext]!static'
- },
- {
- test: /\.scss|css$/,
- use: [{
- loader: "style-loader"
+ rules: [
+ {
+ test: [/\.tsx?$/],
+ use: [
+ {
+ loader: 'ts-loader',
+ options: {
+ transpileOnly: true,
+ },
+ },
+ ],
},
{
- loader: "css-loader"
+ test: /\.m?js/,
+ resolve: {
+ fullySpecified: false,
+ },
},
{
- loader: "sass-loader"
+ test: /\.(woff|woff2|ttf|eot|otf|svg)$/,
+ use: 'file-loader?name=fonts/[name].[ext]!static',
+ },
+ {
+ test: /\.scss|css$/,
+ use: [
+ {
+ loader: 'style-loader',
+ },
+ {
+ loader: 'css-loader',
+ },
+ {
+ loader: 'sass-loader',
+ },
+ ],
+ },
+ {
+ test: /\.(jpg|png|pdf)$/,
+ use: [
+ {
+ loader: 'file-loader',
+ },
+ ],
+ },
+ {
+ test: /\.(png|jpg|gif)$/i,
+ use: [
+ {
+ loader: 'url-loader',
+ options: {
+ limit: 8192,
+ },
+ },
+ ],
},
- ]
- },
- {
- test: /\.(jpg|png|pdf)$/,
- use: [{
- loader: 'file-loader'
- }]
- },
- {
- test: /\.(png|jpg|gif)$/i,
- use: [{
- loader: 'url-loader',
- options: {
- limit: 8192
- }
- }]
- }
],
noParse: [require.resolve('typescript/lib/typescript.js')],
},
plugins,
- externals: [
- 'child_process'
- ],
-}; \ No newline at end of file
+ externals: ['child_process'],
+};