UNPKG

3.79 kBJavaScriptView Raw
1"use strict";
2var __importDefault = (this && this.__importDefault) || function (mod) {
3 return (mod && mod.__esModule) ? mod : { "default": mod };
4};
5Object.defineProperty(exports, "__esModule", { value: true });
6const case_sensitive_paths_webpack_plugin_1 = __importDefault(require("case-sensitive-paths-webpack-plugin"));
7const fork_ts_checker_webpack_plugin_1 = __importDefault(require("fork-ts-checker-webpack-plugin"));
8const tsconfig_paths_webpack_plugin_1 = __importDefault(require("tsconfig-paths-webpack-plugin"));
9const webpack_node_externals_1 = __importDefault(require("webpack-node-externals"));
10const env_1 = require("../util/env");
11const formatForkTsCheckerMessages_1 = require("./formatForkTsCheckerMessages");
12const formatTsLoaderMessages_1 = require("./formatTsLoaderMessages");
13const paths_1 = require("./paths");
14const tsLintHelper_1 = require("./tsLintHelper");
15exports.WebpackProdConfig = {
16 mode: 'production',
17 entry: paths_1.paths.appIndexJs,
18 target: 'node',
19 externals: [
20 webpack_node_externals_1.default(env_1.RuntimeOptions.useMonorepo
21 ? {
22 modulesFromFile: true,
23 }
24 : undefined),
25 ],
26 devtool: 'source-map',
27 output: {
28 path: paths_1.paths.appBuild,
29 filename: 'bundle.prod.js',
30 libraryTarget: 'commonjs',
31 },
32 resolve: {
33 extensions: ['.ts', '.tsx', '.js', '.jsx', '.json'],
34 plugins: [
35 new tsconfig_paths_webpack_plugin_1.default({
36 configFile: paths_1.paths.appTsConfig,
37 logLevel: 'ERROR',
38 }),
39 ],
40 },
41 module: {
42 rules: [
43 {
44 test: /\.tsx?$/,
45 enforce: 'pre',
46 use: [
47 {
48 loader: require.resolve('tslint-loader'),
49 options: {
50 emitErrors: tsLintHelper_1.tslintShouldEmitErrors(paths_1.paths.appTsLint),
51 tsConfigFile: paths_1.paths.appTsConfig,
52 configFile: paths_1.paths.appTsLint,
53 formatter: 'lintTable',
54 formattersDirectory: __dirname + '/formatters/',
55 },
56 },
57 ],
58 },
59 {
60 test: /\.jsx?$/,
61 include: paths_1.paths.appSrc,
62 exclude: /node_modules/,
63 loader: require.resolve('babel-loader'),
64 options: {
65 babelrc: false,
66 presets: [require.resolve('@babel/preset-env')],
67 compact: true,
68 },
69 },
70 {
71 test: /\.tsx?$/,
72 include: paths_1.paths.appSrc,
73 loader: require.resolve('ts-loader'),
74 options: {
75 transpileOnly: true,
76 errorFormatter: formatTsLoaderMessages_1.formatTsLoaderMessages,
77 },
78 },
79 ],
80 },
81 plugins: [
82 new fork_ts_checker_webpack_plugin_1.default({
83 silent: true,
84 async: false,
85 watch: paths_1.paths.appSrc,
86 tsconfig: paths_1.paths.appTsConfig,
87 formatter: formatForkTsCheckerMessages_1.formatForkTsCheckerMessages,
88 checkSyntacticErrors: true,
89 reportFiles: ['**', '!**/__tests__/**', '!**/?(*.)(spec|test|t).*'],
90 }),
91 new case_sensitive_paths_webpack_plugin_1.default(),
92 ],
93 optimization: {
94 nodeEnv: false,
95 },
96 node: {
97 __dirname: false,
98 __filename: false,
99 },
100 performance: {
101 hints: false,
102 },
103};
104//# sourceMappingURL=webpack.config.prod.js.map
\No newline at end of file