1 | "use strict";
|
2 | var __importDefault = (this && this.__importDefault) || function (mod) {
|
3 | return (mod && mod.__esModule) ? mod : { "default": mod };
|
4 | };
|
5 | Object.defineProperty(exports, "__esModule", { value: true });
|
6 | const case_sensitive_paths_webpack_plugin_1 = __importDefault(require("case-sensitive-paths-webpack-plugin"));
|
7 | const fork_ts_checker_webpack_plugin_1 = __importDefault(require("fork-ts-checker-webpack-plugin"));
|
8 | const tsconfig_paths_webpack_plugin_1 = __importDefault(require("tsconfig-paths-webpack-plugin"));
|
9 | const webpack_node_externals_1 = __importDefault(require("webpack-node-externals"));
|
10 | const env_1 = require("../util/env");
|
11 | const formatForkTsCheckerMessages_1 = require("./formatForkTsCheckerMessages");
|
12 | const formatTsLoaderMessages_1 = require("./formatTsLoaderMessages");
|
13 | const paths_1 = require("./paths");
|
14 | const tsLintHelper_1 = require("./tsLintHelper");
|
15 | exports.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 |
|
\ | No newline at end of file |