arui-scripts 14.1.0 → 14.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/build/configs/util/get-entry.d.ts +2 -1
- package/build/configs/util/get-entry.js +5 -4
- package/build/configs/webpack.client.d.ts +2 -0
- package/build/configs/webpack.client.dev.d.ts +2 -3
- package/build/configs/webpack.client.dev.js +3 -293
- package/build/configs/webpack.client.js +366 -0
- package/build/configs/webpack.client.prod.d.ts +1 -2
- package/build/configs/webpack.client.prod.js +2 -334
- package/build/configs/webpack.server.d.ts +2 -0
- package/build/configs/webpack.server.dev.d.ts +2 -3
- package/build/configs/webpack.server.dev.js +3 -228
- package/build/configs/webpack.server.js +239 -0
- package/build/configs/webpack.server.prod.d.ts +1 -2
- package/build/configs/webpack.server.prod.js +2 -192
- package/build/tsconfig-local.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,239 @@
|
|
|
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
|
+
exports.createServerConfig = void 0;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const webpack_1 = __importDefault(require("webpack"));
|
|
10
|
+
const webpack_node_externals_1 = __importDefault(require("webpack-node-externals"));
|
|
11
|
+
const fork_ts_checker_webpack_plugin_1 = __importDefault(require("fork-ts-checker-webpack-plugin"));
|
|
12
|
+
const tsconfig_paths_webpack_plugin_1 = __importDefault(require("tsconfig-paths-webpack-plugin"));
|
|
13
|
+
const getCSSModuleLocalIdent_1 = __importDefault(require("react-dev-utils/getCSSModuleLocalIdent"));
|
|
14
|
+
const app_configs_1 = __importDefault(require("./app-configs"));
|
|
15
|
+
const babel_server_1 = __importDefault(require("./babel-server"));
|
|
16
|
+
const postcss_1 = __importDefault(require("./postcss"));
|
|
17
|
+
const get_entry_1 = __importDefault(require("./util/get-entry"));
|
|
18
|
+
const babel_dependencies_1 = require("./babel-dependencies");
|
|
19
|
+
const server_externals_exemptions_1 = require("./server-externals-exemptions");
|
|
20
|
+
const run_script_webpack_plugin_1 = require("run-script-webpack-plugin");
|
|
21
|
+
const case_sensitive_paths_webpack_plugin_1 = __importDefault(require("case-sensitive-paths-webpack-plugin"));
|
|
22
|
+
const WatchMissingNodeModulesPlugin_1 = __importDefault(require("react-dev-utils/WatchMissingNodeModulesPlugin"));
|
|
23
|
+
const ReloadServerPlugin = require('../plugins/reload-server-webpack-plugin');
|
|
24
|
+
const assetsIgnoreBanner = fs_1.default.readFileSync(require.resolve('./util/node-assets-ignore'), 'utf8');
|
|
25
|
+
const sourceMapSupportBanner = fs_1.default.readFileSync(require.resolve('./util/install-sourcemap-support'), 'utf8');
|
|
26
|
+
// style files regexes
|
|
27
|
+
const cssRegex = /\.css$/;
|
|
28
|
+
const cssModuleRegex = /\.module\.css$/;
|
|
29
|
+
function getSingleEntry(entryPoint, mode) {
|
|
30
|
+
const prefix = (mode === 'dev' && app_configs_1.default.useServerHMR) ? [`${require.resolve('webpack/hot/poll')}?1000`] : [];
|
|
31
|
+
return [...prefix, ...entryPoint];
|
|
32
|
+
}
|
|
33
|
+
// This is a function that wil return webpack configuration to build a server
|
|
34
|
+
const createServerConfig = (mode) => ({
|
|
35
|
+
mode: mode === 'dev' ? 'development' : 'production',
|
|
36
|
+
// fail on first error in production mode
|
|
37
|
+
bail: mode === 'prod',
|
|
38
|
+
devtool: mode === 'dev' ? app_configs_1.default.devSourceMaps : 'source-map',
|
|
39
|
+
target: 'node',
|
|
40
|
+
node: {
|
|
41
|
+
__filename: true,
|
|
42
|
+
__dirname: true
|
|
43
|
+
},
|
|
44
|
+
entry: (0, get_entry_1.default)(app_configs_1.default.serverEntry, getSingleEntry, mode),
|
|
45
|
+
context: app_configs_1.default.cwd,
|
|
46
|
+
output: {
|
|
47
|
+
// Add /* filename */ comments to generated require()s in the output.
|
|
48
|
+
pathinfo: true,
|
|
49
|
+
path: app_configs_1.default.serverOutputPath,
|
|
50
|
+
publicPath: app_configs_1.default.publicPath,
|
|
51
|
+
filename: app_configs_1.default.serverOutput,
|
|
52
|
+
chunkFilename: '[name].js',
|
|
53
|
+
// Point sourcemap entries to original disk location (format as URL on Windows)
|
|
54
|
+
devtoolModuleFilenameTemplate: (info) => path_1.default
|
|
55
|
+
.relative(app_configs_1.default.appSrc, info.absoluteResourcePath)
|
|
56
|
+
.replace(/\\/g, '/'),
|
|
57
|
+
},
|
|
58
|
+
cache: mode === 'dev' ? {
|
|
59
|
+
type: 'filesystem',
|
|
60
|
+
name: 'server',
|
|
61
|
+
buildDependencies: {
|
|
62
|
+
config: [__filename],
|
|
63
|
+
},
|
|
64
|
+
} : false,
|
|
65
|
+
externalsPresets: { node: true },
|
|
66
|
+
externals: [(0, webpack_node_externals_1.default)({
|
|
67
|
+
allowlist: server_externals_exemptions_1.serverExternalsExemptions,
|
|
68
|
+
// we cannot determine node_modules location before arui-scripts installation, so just load
|
|
69
|
+
// dependencies list from package.json
|
|
70
|
+
modulesFromFile: true,
|
|
71
|
+
})],
|
|
72
|
+
optimization: {
|
|
73
|
+
minimize: false,
|
|
74
|
+
nodeEnv: mode === 'dev' ? false : 'production',
|
|
75
|
+
},
|
|
76
|
+
resolve: {
|
|
77
|
+
// This allows you to set a fallback for where Webpack should look for modules.
|
|
78
|
+
// We placed these paths second because we want `node_modules` to "win"
|
|
79
|
+
// if there are any conflicts. This matches Node resolution mechanism.
|
|
80
|
+
// https://github.com/facebookincubator/create-react-app/issues/253
|
|
81
|
+
modules: ['node_modules', app_configs_1.default.appNodeModules],
|
|
82
|
+
// These are the reasonable defaults supported by the Node ecosystem.
|
|
83
|
+
// We also include JSX as a common component filename extension to support
|
|
84
|
+
// some tools, although we do not recommend using it, see:
|
|
85
|
+
// https://github.com/facebookincubator/create-react-app/issues/290
|
|
86
|
+
// `web` extension prefixes have been added for better support
|
|
87
|
+
// for React Native Web.
|
|
88
|
+
extensions: ['.web.js', '.mjs', '.js', '.json', '.web.jsx', '.jsx', '.ts', '.tsx'],
|
|
89
|
+
plugins: ([
|
|
90
|
+
(app_configs_1.default.tsconfig && new tsconfig_paths_webpack_plugin_1.default({
|
|
91
|
+
configFile: app_configs_1.default.tsconfig,
|
|
92
|
+
extensions: ['.web.js', '.mjs', '.js', '.json', '.web.jsx', '.jsx', '.ts', '.tsx']
|
|
93
|
+
}))
|
|
94
|
+
].filter(Boolean)),
|
|
95
|
+
},
|
|
96
|
+
module: {
|
|
97
|
+
// typescript interface will be removed from modules, and we will get an error on correct code
|
|
98
|
+
// see https://github.com/webpack/webpack/issues/7378
|
|
99
|
+
strictExportPresence: !app_configs_1.default.tsconfig,
|
|
100
|
+
rules: [
|
|
101
|
+
{
|
|
102
|
+
oneOf: ([
|
|
103
|
+
// Process JS with Babel.
|
|
104
|
+
{
|
|
105
|
+
test: app_configs_1.default.useTscLoader ? /\.(js|jsx|mjs)$/ : /\.(js|jsx|mjs|ts|tsx)$/,
|
|
106
|
+
include: app_configs_1.default.appSrc,
|
|
107
|
+
loader: require.resolve('babel-loader'),
|
|
108
|
+
options: Object.assign(Object.assign({}, babel_server_1.default), {
|
|
109
|
+
// This is a feature of `babel-loader` for webpack (not Babel itself).
|
|
110
|
+
// It enables caching results in ./node_modules/.cache/babel-loader/
|
|
111
|
+
// directory for faster rebuilds.
|
|
112
|
+
cacheDirectory: mode === 'dev' }),
|
|
113
|
+
},
|
|
114
|
+
(app_configs_1.default.tsconfig && app_configs_1.default.useTscLoader) && {
|
|
115
|
+
test: /\.tsx?$/,
|
|
116
|
+
use: [
|
|
117
|
+
{
|
|
118
|
+
loader: require.resolve('babel-loader'),
|
|
119
|
+
options: Object.assign({
|
|
120
|
+
// This is a feature of `babel-loader` for webpack (not Babel itself).
|
|
121
|
+
// It enables caching results in ./node_modules/.cache/babel-loader/
|
|
122
|
+
// directory for faster rebuilds.
|
|
123
|
+
cacheDirectory: mode === 'dev'
|
|
124
|
+
}, babel_server_1.default)
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
loader: require.resolve('ts-loader'),
|
|
128
|
+
options: {
|
|
129
|
+
onlyCompileBundledFiles: true,
|
|
130
|
+
transpileOnly: true,
|
|
131
|
+
happyPackMode: true,
|
|
132
|
+
configFile: app_configs_1.default.tsconfig
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
]
|
|
136
|
+
},
|
|
137
|
+
// Process any JS outside of the app with Babel.
|
|
138
|
+
// Unlike the application JS, we only compile the standard ES features.
|
|
139
|
+
{
|
|
140
|
+
test: /\.(js|mjs)$/,
|
|
141
|
+
exclude: /@babel(?:\/|\\{1,2})runtime/,
|
|
142
|
+
loader: require.resolve('babel-loader'),
|
|
143
|
+
options: Object.assign(Object.assign({}, babel_dependencies_1.babelDependencies), { babelrc: false, configFile: false, compact: false, cacheDirectory: mode === 'dev', cacheCompression: false }),
|
|
144
|
+
},
|
|
145
|
+
// replace css imports with empty files
|
|
146
|
+
{
|
|
147
|
+
test: cssRegex,
|
|
148
|
+
exclude: cssModuleRegex,
|
|
149
|
+
loader: require.resolve('null-loader')
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
test: cssModuleRegex,
|
|
153
|
+
use: [
|
|
154
|
+
{
|
|
155
|
+
loader: require.resolve('css-loader'),
|
|
156
|
+
options: {
|
|
157
|
+
modules: {
|
|
158
|
+
exportOnlyLocals: true,
|
|
159
|
+
getLocalIdent: getCSSModuleLocalIdent_1.default
|
|
160
|
+
},
|
|
161
|
+
},
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
loader: require.resolve('postcss-loader'),
|
|
165
|
+
options: {
|
|
166
|
+
// Necessary for external CSS imports to work
|
|
167
|
+
// https://github.com/facebookincubator/create-react-app/issues/2677
|
|
168
|
+
ident: 'postcss',
|
|
169
|
+
plugins: () => postcss_1.default,
|
|
170
|
+
},
|
|
171
|
+
},
|
|
172
|
+
],
|
|
173
|
+
},
|
|
174
|
+
// "file" loader makes sure those assets get served by WebpackDevServer.
|
|
175
|
+
// When you `import` an asset, you get its (virtual) filename.
|
|
176
|
+
// In production, they would get copied to the `build` folder.
|
|
177
|
+
// This loader doesn't use a "test" so it will catch all modules
|
|
178
|
+
// that fall through the other loaders.
|
|
179
|
+
{
|
|
180
|
+
// Exclude `js` files to keep "css" loader working as it injects
|
|
181
|
+
// its runtime that would otherwise processed through "file" loader.
|
|
182
|
+
// Also exclude `html` and `json` extensions so they get processed
|
|
183
|
+
// by webpacks internal loaders.
|
|
184
|
+
exclude: [/\.(js|jsx|mjs|ts|tsx)$/, /\.(html|ejs)$/, /\.json$/],
|
|
185
|
+
loader: require.resolve('file-loader'),
|
|
186
|
+
options: {
|
|
187
|
+
outputPath: app_configs_1.default.publicPath,
|
|
188
|
+
publicPath: app_configs_1.default.publicPath,
|
|
189
|
+
name: 'static/media/[name].[hash:8].[ext]',
|
|
190
|
+
},
|
|
191
|
+
},
|
|
192
|
+
].filter(Boolean)),
|
|
193
|
+
},
|
|
194
|
+
],
|
|
195
|
+
},
|
|
196
|
+
plugins: ([
|
|
197
|
+
new webpack_1.default.BannerPlugin({
|
|
198
|
+
banner: assetsIgnoreBanner,
|
|
199
|
+
raw: true,
|
|
200
|
+
entryOnly: false
|
|
201
|
+
}),
|
|
202
|
+
app_configs_1.default.installServerSourceMaps && new webpack_1.default.BannerPlugin({
|
|
203
|
+
banner: sourceMapSupportBanner,
|
|
204
|
+
raw: true,
|
|
205
|
+
entryOnly: false
|
|
206
|
+
}),
|
|
207
|
+
app_configs_1.default.tsconfig !== null && new fork_ts_checker_webpack_plugin_1.default(),
|
|
208
|
+
// dev plugins:
|
|
209
|
+
mode === 'dev' && (app_configs_1.default.useServerHMR
|
|
210
|
+
? new run_script_webpack_plugin_1.RunScriptWebpackPlugin({
|
|
211
|
+
name: app_configs_1.default.serverOutput
|
|
212
|
+
})
|
|
213
|
+
: new ReloadServerPlugin({ script: path_1.default.join(app_configs_1.default.serverOutputPath, app_configs_1.default.serverOutput) })),
|
|
214
|
+
mode === 'dev' && new webpack_1.default.NoEmitOnErrorsPlugin(),
|
|
215
|
+
// Watcher doesn't work well if you mistype casing in a path so we use
|
|
216
|
+
// a plugin that prints an error when you attempt to do this.
|
|
217
|
+
// See https://github.com/facebookincubator/create-react-app/issues/240
|
|
218
|
+
mode === 'dev' && new case_sensitive_paths_webpack_plugin_1.default(),
|
|
219
|
+
// If you require a missing module and then `npm install` it, you still have
|
|
220
|
+
// to restart the development server for Webpack to discover it. This plugin
|
|
221
|
+
// makes the discovery automatic so you don't have to restart.
|
|
222
|
+
// See https://github.com/facebookincubator/create-react-app/issues/186
|
|
223
|
+
mode === 'dev' && new WatchMissingNodeModulesPlugin_1.default(app_configs_1.default.appNodeModules),
|
|
224
|
+
mode === 'dev' && app_configs_1.default.useServerHMR && new webpack_1.default.HotModuleReplacementPlugin()
|
|
225
|
+
].filter(Boolean)),
|
|
226
|
+
experiments: {
|
|
227
|
+
backCompat: app_configs_1.default.webpack4Compatibility,
|
|
228
|
+
},
|
|
229
|
+
// Без этого комиляция трирегилась на изменение в node_modules и приводила к утечке памяти
|
|
230
|
+
watchOptions: {
|
|
231
|
+
ignored: new RegExp(app_configs_1.default.watchIgnorePath.join('|')),
|
|
232
|
+
aggregateTimeout: 100,
|
|
233
|
+
},
|
|
234
|
+
performance: {
|
|
235
|
+
// we don't really care about bundle size for server
|
|
236
|
+
hints: false,
|
|
237
|
+
},
|
|
238
|
+
});
|
|
239
|
+
exports.createServerConfig = createServerConfig;
|
|
@@ -3,197 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const fs_1 = __importDefault(require("fs"));
|
|
7
|
-
const path_1 = __importDefault(require("path"));
|
|
8
|
-
const webpack_1 = __importDefault(require("webpack"));
|
|
9
|
-
const webpack_node_externals_1 = __importDefault(require("webpack-node-externals"));
|
|
10
|
-
const fork_ts_checker_webpack_plugin_1 = __importDefault(require("fork-ts-checker-webpack-plugin"));
|
|
11
|
-
const tsconfig_paths_webpack_plugin_1 = __importDefault(require("tsconfig-paths-webpack-plugin"));
|
|
12
|
-
const getCSSModuleLocalIdent_1 = __importDefault(require("react-dev-utils/getCSSModuleLocalIdent"));
|
|
13
|
-
const app_configs_1 = __importDefault(require("./app-configs"));
|
|
14
|
-
const babel_server_1 = __importDefault(require("./babel-server"));
|
|
15
|
-
const postcss_1 = __importDefault(require("./postcss"));
|
|
16
6
|
const apply_overrides_1 = __importDefault(require("./util/apply-overrides"));
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
const server_externals_exemptions_1 = require("./server-externals-exemptions");
|
|
20
|
-
const assetsIgnoreBanner = fs_1.default.readFileSync(require.resolve('./util/node-assets-ignore'), 'utf8');
|
|
21
|
-
const sourceMapSupportBanner = fs_1.default.readFileSync(require.resolve('./util/install-sourcemap-support'), 'utf8');
|
|
22
|
-
// style files regexes
|
|
23
|
-
const cssRegex = /\.css$/;
|
|
24
|
-
const cssModuleRegex = /\.module\.css$/;
|
|
25
|
-
function getSingleEntry(entryPoint) {
|
|
26
|
-
return [...entryPoint];
|
|
27
|
-
}
|
|
28
|
-
// This is the production configuration.
|
|
29
|
-
// It compiles slowly and is focused on producing a fast and minimal bundle.
|
|
30
|
-
// The development configuration is different and lives in a separate file.
|
|
31
|
-
const config = (0, apply_overrides_1.default)(['webpack', 'webpackServer', 'webpackProd', 'webpackServerProd'], {
|
|
32
|
-
mode: 'production',
|
|
33
|
-
// Don't attempt to continue if there are any errors.
|
|
34
|
-
bail: true,
|
|
35
|
-
// We generate sourcemaps in production. This is slow but gives good results.
|
|
36
|
-
devtool: 'source-map',
|
|
37
|
-
target: 'node',
|
|
38
|
-
node: {
|
|
39
|
-
__filename: true,
|
|
40
|
-
__dirname: true
|
|
41
|
-
},
|
|
42
|
-
entry: (0, get_entry_1.default)(app_configs_1.default.serverEntry, getSingleEntry),
|
|
43
|
-
context: app_configs_1.default.cwd,
|
|
44
|
-
output: {
|
|
45
|
-
// Add /* filename */ comments to generated require()s in the output.
|
|
46
|
-
pathinfo: true,
|
|
47
|
-
path: app_configs_1.default.serverOutputPath,
|
|
48
|
-
publicPath: app_configs_1.default.publicPath,
|
|
49
|
-
filename: app_configs_1.default.serverOutput,
|
|
50
|
-
chunkFilename: '[name].js',
|
|
51
|
-
// Point sourcemap entries to original disk location (format as URL on Windows)
|
|
52
|
-
devtoolModuleFilenameTemplate: (info) => path_1.default
|
|
53
|
-
.relative(app_configs_1.default.appSrc, info.absoluteResourcePath)
|
|
54
|
-
.replace(/\\/g, '/'),
|
|
55
|
-
},
|
|
56
|
-
externalsPresets: { node: true },
|
|
57
|
-
externals: [(0, webpack_node_externals_1.default)({
|
|
58
|
-
allowlist: server_externals_exemptions_1.serverExternalsExemptions,
|
|
59
|
-
// we cannot determine node_modules location before arui-scripts installation, so just load
|
|
60
|
-
// dependencies list from package.json
|
|
61
|
-
modulesFromFile: true,
|
|
62
|
-
})],
|
|
63
|
-
optimization: {
|
|
64
|
-
minimize: false,
|
|
65
|
-
},
|
|
66
|
-
resolve: {
|
|
67
|
-
// This allows you to set a fallback for where Webpack should look for modules.
|
|
68
|
-
// We placed these paths second because we want `node_modules` to "win"
|
|
69
|
-
// if there are any conflicts. This matches Node resolution mechanism.
|
|
70
|
-
// https://github.com/facebookincubator/create-react-app/issues/253
|
|
71
|
-
modules: ['node_modules', app_configs_1.default.appNodeModules],
|
|
72
|
-
// These are the reasonable defaults supported by the Node ecosystem.
|
|
73
|
-
// We also include JSX as a common component filename extension to support
|
|
74
|
-
// some tools, although we do not recommend using it, see:
|
|
75
|
-
// https://github.com/facebookincubator/create-react-app/issues/290
|
|
76
|
-
// `web` extension prefixes have been added for better support
|
|
77
|
-
// for React Native Web.
|
|
78
|
-
extensions: ['.web.js', '.mjs', '.js', '.json', '.web.jsx', '.jsx', '.ts', '.tsx'],
|
|
79
|
-
plugins: ([
|
|
80
|
-
(app_configs_1.default.tsconfig && new tsconfig_paths_webpack_plugin_1.default({
|
|
81
|
-
configFile: app_configs_1.default.tsconfig,
|
|
82
|
-
extensions: ['.web.js', '.mjs', '.js', '.json', '.web.jsx', '.jsx', '.ts', '.tsx']
|
|
83
|
-
}))
|
|
84
|
-
].filter(Boolean)),
|
|
85
|
-
},
|
|
86
|
-
module: {
|
|
87
|
-
// typescript interface will be removed from modules, and we will get an error on correct code
|
|
88
|
-
// see https://github.com/webpack/webpack/issues/7378
|
|
89
|
-
strictExportPresence: !app_configs_1.default.tsconfig,
|
|
90
|
-
rules: [
|
|
91
|
-
{
|
|
92
|
-
oneOf: ([
|
|
93
|
-
// Process JS with Babel.
|
|
94
|
-
{
|
|
95
|
-
test: app_configs_1.default.useTscLoader ? /\.(js|jsx|mjs)$/ : /\.(js|jsx|mjs|ts|tsx)$/,
|
|
96
|
-
include: app_configs_1.default.appSrc,
|
|
97
|
-
loader: require.resolve('babel-loader'),
|
|
98
|
-
options: babel_server_1.default,
|
|
99
|
-
},
|
|
100
|
-
(app_configs_1.default.tsconfig && app_configs_1.default.useTscLoader) && {
|
|
101
|
-
test: /\.tsx?$/,
|
|
102
|
-
use: [
|
|
103
|
-
{
|
|
104
|
-
loader: require.resolve('babel-loader'),
|
|
105
|
-
options: Object.assign({
|
|
106
|
-
// This is a feature of `babel-loader` for webpack (not Babel itself).
|
|
107
|
-
// It enables caching results in ./node_modules/.cache/babel-loader/
|
|
108
|
-
// directory for faster rebuilds.
|
|
109
|
-
cacheDirectory: true
|
|
110
|
-
}, babel_server_1.default)
|
|
111
|
-
},
|
|
112
|
-
{
|
|
113
|
-
loader: require.resolve('ts-loader'),
|
|
114
|
-
options: {
|
|
115
|
-
onlyCompileBundledFiles: true,
|
|
116
|
-
transpileOnly: true,
|
|
117
|
-
happyPackMode: true,
|
|
118
|
-
configFile: app_configs_1.default.tsconfig
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
]
|
|
122
|
-
},
|
|
123
|
-
// Process any JS outside of the app with Babel.
|
|
124
|
-
// Unlike the application JS, we only compile the standard ES features.
|
|
125
|
-
{
|
|
126
|
-
test: /\.(js|mjs)$/,
|
|
127
|
-
exclude: /@babel(?:\/|\\{1,2})runtime/,
|
|
128
|
-
loader: require.resolve('babel-loader'),
|
|
129
|
-
options: Object.assign(Object.assign({}, babel_dependencies_1.babelDependencies), { babelrc: false, configFile: false, compact: false, cacheDirectory: true, cacheCompression: false }),
|
|
130
|
-
},
|
|
131
|
-
// replace css imports with empty files
|
|
132
|
-
{
|
|
133
|
-
test: cssRegex,
|
|
134
|
-
exclude: cssModuleRegex,
|
|
135
|
-
loader: require.resolve('null-loader')
|
|
136
|
-
},
|
|
137
|
-
{
|
|
138
|
-
test: cssModuleRegex,
|
|
139
|
-
use: [
|
|
140
|
-
{
|
|
141
|
-
loader: require.resolve('css-loader'),
|
|
142
|
-
options: {
|
|
143
|
-
modules: {
|
|
144
|
-
exportOnlyLocals: true,
|
|
145
|
-
getLocalIdent: getCSSModuleLocalIdent_1.default
|
|
146
|
-
},
|
|
147
|
-
},
|
|
148
|
-
},
|
|
149
|
-
{
|
|
150
|
-
loader: require.resolve('postcss-loader'),
|
|
151
|
-
options: {
|
|
152
|
-
// Necessary for external CSS imports to work
|
|
153
|
-
// https://github.com/facebookincubator/create-react-app/issues/2677
|
|
154
|
-
ident: 'postcss',
|
|
155
|
-
plugins: () => postcss_1.default,
|
|
156
|
-
},
|
|
157
|
-
},
|
|
158
|
-
],
|
|
159
|
-
},
|
|
160
|
-
// "file" loader makes sure those assets get served by WebpackDevServer.
|
|
161
|
-
// When you `import` an asset, you get its (virtual) filename.
|
|
162
|
-
// In production, they would get copied to the `build` folder.
|
|
163
|
-
// This loader doesn't use a "test" so it will catch all modules
|
|
164
|
-
// that fall through the other loaders.
|
|
165
|
-
{
|
|
166
|
-
// Exclude `js` files to keep "css" loader working as it injects
|
|
167
|
-
// its runtime that would otherwise processed through "file" loader.
|
|
168
|
-
// Also exclude `html` and `json` extensions so they get processed
|
|
169
|
-
// by webpacks internal loaders.
|
|
170
|
-
exclude: [/\.(js|jsx|mjs|ts|tsx)$/, /\.(html|ejs)$/, /\.json$/],
|
|
171
|
-
loader: require.resolve('file-loader'),
|
|
172
|
-
options: {
|
|
173
|
-
outputPath: app_configs_1.default.publicPath,
|
|
174
|
-
publicPath: app_configs_1.default.publicPath,
|
|
175
|
-
name: 'static/media/[name].[hash:8].[ext]',
|
|
176
|
-
},
|
|
177
|
-
},
|
|
178
|
-
].filter(Boolean)),
|
|
179
|
-
},
|
|
180
|
-
],
|
|
181
|
-
},
|
|
182
|
-
plugins: ([
|
|
183
|
-
new webpack_1.default.BannerPlugin({
|
|
184
|
-
banner: assetsIgnoreBanner,
|
|
185
|
-
raw: true,
|
|
186
|
-
entryOnly: false
|
|
187
|
-
}),
|
|
188
|
-
app_configs_1.default.installServerSourceMaps && new webpack_1.default.BannerPlugin({
|
|
189
|
-
banner: sourceMapSupportBanner,
|
|
190
|
-
raw: true,
|
|
191
|
-
entryOnly: false
|
|
192
|
-
}),
|
|
193
|
-
app_configs_1.default.tsconfig !== null && new fork_ts_checker_webpack_plugin_1.default()
|
|
194
|
-
].filter(Boolean)),
|
|
195
|
-
experiments: {
|
|
196
|
-
backCompat: app_configs_1.default.webpack4Compatibility,
|
|
197
|
-
},
|
|
198
|
-
});
|
|
7
|
+
const webpack_server_1 = require("./webpack.server");
|
|
8
|
+
const config = (0, apply_overrides_1.default)(['webpack', 'webpackServer', 'webpackProd', 'webpackServerProd'], (0, webpack_server_1.createServerConfig)('prod'));
|
|
199
9
|
exports.default = config;
|