@elliemae/pui-cli 5.17.3 → 6.0.0-beta.11
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/lib/cli-commands/pack.js +4 -9
- package/lib/esbuild.js +44 -0
- package/lib/lint/eslint/common.js +1 -0
- package/lib/server/index.js +5 -2
- package/lib/testing/mocks/svg.js +5 -3
- package/lib/webpack/webpack.base.babel.js +53 -40
- package/lib/webpack/webpack.dev.babel.js +8 -0
- package/lib/webpack/webpack.lib.base.babel.js +12 -33
- package/lib/webpack/webpack.lib.prod.babel.js +5 -12
- package/lib/webpack/webpack.prod.babel.js +13 -14
- package/lib/webpack/webpack.storybook.js +12 -23
- package/package.json +37 -32
package/lib/cli-commands/pack.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
/* eslint-disable max-lines */
|
|
1
2
|
const { exit } = require('yargs');
|
|
2
3
|
const path = require('path');
|
|
3
4
|
const { writeFile, readFile } = require('fs/promises');
|
|
4
5
|
const { exec, logInfo, logError, logSuccess } = require('./utils');
|
|
5
6
|
const { isTypeScriptEnabled } = require('../typescript/util');
|
|
7
|
+
const { esBuild } = require('../esbuild');
|
|
6
8
|
|
|
7
9
|
const { name } = require('../../package.json');
|
|
8
10
|
|
|
@@ -37,14 +39,9 @@ async function createPackageJson(file, commonJS, sideEffects) {
|
|
|
37
39
|
await writeFile(file, packageJSON);
|
|
38
40
|
}
|
|
39
41
|
|
|
40
|
-
async function nodeBuild({ srcPath, commonJS, emitModuleType
|
|
42
|
+
async function nodeBuild({ srcPath, commonJS, emitModuleType }) {
|
|
41
43
|
const outDir = `./dist/${commonJS ? 'cjs' : 'es'}`;
|
|
42
|
-
|
|
43
|
-
const babelEnv = commonJS ? ' ES_MODULES=false' : '';
|
|
44
|
-
await exec(
|
|
45
|
-
`cross-env NODE_ENV=production MODULE_EXTENSIONS=true ${targetEnv}${babelEnv} babel --extensions ".ts,.tsx,.js,.jsx" ${srcPath} --out-dir ${outDir} --copy-files --no-copy-ignored --ignore **/*.test.js --ignore **/*.test.ts --ignore **/*.spec.js --ignore **/*.spec.ts --ignore **/*.test.jsx --ignore **/*.test.tsx --ignore **/*.spec.jsx --ignore **/*.spec.tsx`,
|
|
46
|
-
{ shell: true, stdio: 'inherit' },
|
|
47
|
-
);
|
|
44
|
+
await esBuild({ srcPath, commonJS });
|
|
48
45
|
if (emitModuleType) {
|
|
49
46
|
const sideEffects = await getSideEffects();
|
|
50
47
|
await createPackageJson(
|
|
@@ -79,7 +76,6 @@ async function pack({ production, target, module, srcPath, emitModuleType }) {
|
|
|
79
76
|
srcPath,
|
|
80
77
|
commonJS: false,
|
|
81
78
|
emitModuleType,
|
|
82
|
-
target,
|
|
83
79
|
});
|
|
84
80
|
}
|
|
85
81
|
}
|
|
@@ -118,7 +114,6 @@ exports.builder = {
|
|
|
118
114
|
},
|
|
119
115
|
emitModuleType: {
|
|
120
116
|
type: 'boolean',
|
|
121
|
-
// eslint-disable-next-line max-lines
|
|
122
117
|
default: true,
|
|
123
118
|
description:
|
|
124
119
|
'creates type attribute in the package.json and sets its value to commonjs or module based on module cli argument. default: true',
|
package/lib/esbuild.js
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
const esbuild = require('esbuild');
|
|
2
|
+
const fg = require('fast-glob');
|
|
3
|
+
|
|
4
|
+
const ESBUILD_TARGET = 'es2020';
|
|
5
|
+
|
|
6
|
+
const commonConfig = {
|
|
7
|
+
bundle: false,
|
|
8
|
+
target: ESBUILD_TARGET,
|
|
9
|
+
loader: { '.js': 'jsx' },
|
|
10
|
+
mainFields: ['module', 'browser', 'main'],
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
const outDir = 'dist';
|
|
14
|
+
|
|
15
|
+
const build = async ({ srcPath, commonJS }) => {
|
|
16
|
+
const inputFiles = [
|
|
17
|
+
`${srcPath}/**/*.{js,jsx,ts,tsx}`,
|
|
18
|
+
`!${srcPath}/**/*.test.{js,jsx,ts,tsx}`,
|
|
19
|
+
`!${srcPath}/**/*.stories.{js,jsx,ts,tsx}`,
|
|
20
|
+
`!${srcPath}/**/*.endpoint.{js,jsx,ts,tsx}`,
|
|
21
|
+
];
|
|
22
|
+
if (!commonJS) {
|
|
23
|
+
const entryPoints = await fg(inputFiles);
|
|
24
|
+
await esbuild.build({
|
|
25
|
+
entryPoints,
|
|
26
|
+
...commonConfig,
|
|
27
|
+
outdir: `${outDir}/es`,
|
|
28
|
+
format: 'esm',
|
|
29
|
+
});
|
|
30
|
+
} else {
|
|
31
|
+
const commonJSEntryPoints = await fg(
|
|
32
|
+
inputFiles.concat([`${srcPath}/**/*.cjs`]),
|
|
33
|
+
);
|
|
34
|
+
await esbuild.build({
|
|
35
|
+
entryPoints: commonJSEntryPoints,
|
|
36
|
+
...commonConfig,
|
|
37
|
+
outdir: `${outDir}/cjs`,
|
|
38
|
+
format: 'cjs',
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
exports.esBuild = build;
|
|
44
|
+
exports.ESBUILD_TARGET = ESBUILD_TARGET;
|
package/lib/server/index.js
CHANGED
|
@@ -13,8 +13,11 @@ const { loadRoutes } = require('./util');
|
|
|
13
13
|
const { getAssetPath } = require('../webpack/helpers');
|
|
14
14
|
|
|
15
15
|
const pino = expressPinoLogger({
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
transport: {
|
|
17
|
+
target: 'pino-pretty',
|
|
18
|
+
options: {
|
|
19
|
+
colorize: true,
|
|
20
|
+
},
|
|
18
21
|
},
|
|
19
22
|
});
|
|
20
23
|
pino.logger.level = 'warn';
|
package/lib/testing/mocks/svg.js
CHANGED
|
@@ -7,7 +7,7 @@ const DuplicatePackageCheckerPlugin = require('duplicate-package-checker-webpack
|
|
|
7
7
|
const CaseSensitivePathsPlugin = require('case-sensitive-paths-webpack-plugin');
|
|
8
8
|
const MomentLocalesPlugin = require('moment-locales-webpack-plugin');
|
|
9
9
|
const { WebpackManifestPlugin } = require('webpack-manifest-plugin');
|
|
10
|
-
const
|
|
10
|
+
const { ProvidePlugin } = require('webpack');
|
|
11
11
|
|
|
12
12
|
const {
|
|
13
13
|
excludeNodeModulesExcept,
|
|
@@ -15,12 +15,10 @@ const {
|
|
|
15
15
|
modulesToTranspile,
|
|
16
16
|
getAlias,
|
|
17
17
|
getPaths,
|
|
18
|
-
getMediaPath,
|
|
19
18
|
} = require('./helpers');
|
|
20
|
-
const {
|
|
19
|
+
const { ESBUILD_TARGET } = require('../esbuild');
|
|
21
20
|
|
|
22
21
|
// get the application configuration
|
|
23
|
-
const devMode = process.env.NODE_ENV !== 'production';
|
|
24
22
|
const minicssLoader = {
|
|
25
23
|
loader: MiniCssExtractPlugin.loader,
|
|
26
24
|
options: {},
|
|
@@ -46,6 +44,10 @@ const plugins = [
|
|
|
46
44
|
APP_CONFIG: getAppConfig(),
|
|
47
45
|
}),
|
|
48
46
|
new CaseSensitivePathsPlugin(),
|
|
47
|
+
// new ESLintPlugin(),
|
|
48
|
+
new ProvidePlugin({
|
|
49
|
+
React: 'react',
|
|
50
|
+
}),
|
|
49
51
|
new CopyWebpackPlugin({
|
|
50
52
|
patterns: [
|
|
51
53
|
{
|
|
@@ -64,21 +66,29 @@ const plugins = [
|
|
|
64
66
|
{
|
|
65
67
|
from: 'node_modules/@elliemae/pui-user-monitoring/dist/public/js',
|
|
66
68
|
to: 'js',
|
|
69
|
+
toType: 'dir',
|
|
70
|
+
info: { minimized: true },
|
|
67
71
|
},
|
|
68
72
|
{
|
|
69
|
-
from: 'node_modules/@elliemae/pui-app-loader/dist/public/js
|
|
70
|
-
to: 'js
|
|
73
|
+
from: 'node_modules/@elliemae/pui-app-loader/dist/public/js',
|
|
74
|
+
to: 'js',
|
|
75
|
+
toType: 'dir',
|
|
71
76
|
noErrorOnMissing: true,
|
|
77
|
+
info: { minimized: true },
|
|
72
78
|
},
|
|
73
79
|
{
|
|
74
|
-
from: 'node_modules/@elliemae/encw-loader/dist/public/js
|
|
75
|
-
to: 'js
|
|
80
|
+
from: 'node_modules/@elliemae/encw-loader/dist/public/js',
|
|
81
|
+
to: 'js',
|
|
82
|
+
toType: 'dir',
|
|
76
83
|
noErrorOnMissing: true,
|
|
84
|
+
info: { minimized: true },
|
|
77
85
|
},
|
|
78
86
|
{
|
|
79
|
-
from: 'node_modules/@elliemae/pui-diagnostics/dist/public/js
|
|
80
|
-
to: 'js
|
|
87
|
+
from: 'node_modules/@elliemae/pui-diagnostics/dist/public/js',
|
|
88
|
+
to: 'js',
|
|
89
|
+
toType: 'dir',
|
|
81
90
|
noErrorOnMissing: true,
|
|
91
|
+
info: { minimized: true },
|
|
82
92
|
},
|
|
83
93
|
{
|
|
84
94
|
from: 'public',
|
|
@@ -96,17 +106,6 @@ const plugins = [
|
|
|
96
106
|
new WebpackManifestPlugin(),
|
|
97
107
|
];
|
|
98
108
|
|
|
99
|
-
if (isTypeScriptEnabled()) {
|
|
100
|
-
plugins.push(
|
|
101
|
-
new ForkTsCheckerWebpackPlugin({
|
|
102
|
-
async: devMode,
|
|
103
|
-
eslint: {
|
|
104
|
-
files: './app/**/*.{ts,js,tsx,jsx}',
|
|
105
|
-
},
|
|
106
|
-
}),
|
|
107
|
-
);
|
|
108
|
-
}
|
|
109
|
-
|
|
110
109
|
module.exports = (options) => ({
|
|
111
110
|
mode: options.mode,
|
|
112
111
|
entry: options.entry,
|
|
@@ -153,17 +152,30 @@ module.exports = (options) => ({
|
|
|
153
152
|
],
|
|
154
153
|
},
|
|
155
154
|
{
|
|
156
|
-
test: /\.(js|
|
|
155
|
+
test: /\.(js|jsx)$/,
|
|
157
156
|
exclude: excludeNodeModulesExcept(modulesToTranspile),
|
|
158
157
|
resolve: {
|
|
159
158
|
fullySpecified: false,
|
|
160
159
|
},
|
|
161
160
|
use: {
|
|
162
|
-
loader: '
|
|
161
|
+
loader: 'esbuild-loader',
|
|
163
162
|
options: {
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
163
|
+
loader: 'jsx',
|
|
164
|
+
target: ESBUILD_TARGET,
|
|
165
|
+
},
|
|
166
|
+
},
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
test: /\.(ts|tsx)$/,
|
|
170
|
+
exclude: excludeNodeModulesExcept(modulesToTranspile),
|
|
171
|
+
resolve: {
|
|
172
|
+
fullySpecified: false,
|
|
173
|
+
},
|
|
174
|
+
use: {
|
|
175
|
+
loader: 'esbuild-loader',
|
|
176
|
+
options: {
|
|
177
|
+
loader: 'tsx',
|
|
178
|
+
target: ESBUILD_TARGET,
|
|
167
179
|
},
|
|
168
180
|
},
|
|
169
181
|
},
|
|
@@ -178,6 +190,13 @@ module.exports = (options) => ({
|
|
|
178
190
|
sourceMap: true,
|
|
179
191
|
},
|
|
180
192
|
},
|
|
193
|
+
{
|
|
194
|
+
loader: 'esbuild-loader',
|
|
195
|
+
options: {
|
|
196
|
+
loader: 'css',
|
|
197
|
+
minify: options.mode === 'production',
|
|
198
|
+
},
|
|
199
|
+
},
|
|
181
200
|
{
|
|
182
201
|
loader: 'postcss-loader',
|
|
183
202
|
options: {
|
|
@@ -195,22 +214,16 @@ module.exports = (options) => ({
|
|
|
195
214
|
type: 'asset/resource',
|
|
196
215
|
},
|
|
197
216
|
{
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
loader: 'file-loader',
|
|
206
|
-
options: {
|
|
207
|
-
name: getMediaPath(),
|
|
208
|
-
},
|
|
209
|
-
},
|
|
210
|
-
],
|
|
217
|
+
type: 'asset',
|
|
218
|
+
resourceQuery: /url/, // *.svg?react
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
test: /\.svg$/i,
|
|
222
|
+
issuer: /\.[jt]sx?$/,
|
|
223
|
+
use: ['@svgr/webpack'],
|
|
211
224
|
},
|
|
212
225
|
{
|
|
213
|
-
test: /\.(jpe?g|png|gif)$/i,
|
|
226
|
+
test: /\.(jpe?g|png|gif|ico)$/i,
|
|
214
227
|
exclude: excludeNodeModulesExcept(['@elliemae/*']),
|
|
215
228
|
type: 'asset',
|
|
216
229
|
},
|
|
@@ -26,6 +26,14 @@ const {
|
|
|
26
26
|
const devConfig = {
|
|
27
27
|
mode: 'development',
|
|
28
28
|
|
|
29
|
+
cache: {
|
|
30
|
+
type: 'filesystem',
|
|
31
|
+
allowCollectingMemory: true,
|
|
32
|
+
buildDependencies: {
|
|
33
|
+
config: [__filename],
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
|
|
29
37
|
// Add hot reloading in development
|
|
30
38
|
entry: {
|
|
31
39
|
app: [
|
|
@@ -10,7 +10,6 @@ const PostcssPresetEnv = require('postcss-preset-env');
|
|
|
10
10
|
const DuplicatePackageCheckerPlugin = require('duplicate-package-checker-webpack-plugin');
|
|
11
11
|
const CaseSensitivePathsPlugin = require('case-sensitive-paths-webpack-plugin');
|
|
12
12
|
const MomentLocalesPlugin = require('moment-locales-webpack-plugin');
|
|
13
|
-
const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin');
|
|
14
13
|
|
|
15
14
|
const {
|
|
16
15
|
excludeNodeModulesExcept,
|
|
@@ -19,11 +18,9 @@ const {
|
|
|
19
18
|
modulesToTranspile,
|
|
20
19
|
getAssetPath,
|
|
21
20
|
getAlias,
|
|
22
|
-
getMediaPath,
|
|
23
21
|
} = require('./helpers');
|
|
24
|
-
const {
|
|
22
|
+
const { ESBUILD_TARGET } = require('../esbuild');
|
|
25
23
|
|
|
26
|
-
const devMode = process.env.NODE_ENV !== 'production';
|
|
27
24
|
const minicssLoader = {
|
|
28
25
|
loader: MiniCssExtractPlugin.loader,
|
|
29
26
|
options: {},
|
|
@@ -62,17 +59,6 @@ const plugins = [
|
|
|
62
59
|
new MomentLocalesPlugin(),
|
|
63
60
|
];
|
|
64
61
|
|
|
65
|
-
if (isTypeScriptEnabled()) {
|
|
66
|
-
plugins.push(
|
|
67
|
-
new ForkTsCheckerWebpackPlugin({
|
|
68
|
-
async: devMode,
|
|
69
|
-
eslint: {
|
|
70
|
-
files: './lib/**/*.{ts,js,tsx,jsx}',
|
|
71
|
-
},
|
|
72
|
-
}),
|
|
73
|
-
);
|
|
74
|
-
}
|
|
75
|
-
|
|
76
62
|
module.exports = (options) => ({
|
|
77
63
|
mode: options.mode,
|
|
78
64
|
entry: [path.join(process.cwd(), 'lib/index')],
|
|
@@ -126,11 +112,10 @@ module.exports = (options) => ({
|
|
|
126
112
|
fullySpecified: false,
|
|
127
113
|
},
|
|
128
114
|
use: {
|
|
129
|
-
loader: '
|
|
115
|
+
loader: 'esbuild-loader',
|
|
130
116
|
options: {
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
...(options.babelQuery || {}),
|
|
117
|
+
loader: 'jsx',
|
|
118
|
+
target: ESBUILD_TARGET,
|
|
134
119
|
},
|
|
135
120
|
},
|
|
136
121
|
},
|
|
@@ -186,22 +171,16 @@ module.exports = (options) => ({
|
|
|
186
171
|
type: 'asset/resource',
|
|
187
172
|
},
|
|
188
173
|
{
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
loader: 'file-loader',
|
|
197
|
-
options: {
|
|
198
|
-
name: getMediaPath(),
|
|
199
|
-
},
|
|
200
|
-
},
|
|
201
|
-
],
|
|
174
|
+
type: 'asset',
|
|
175
|
+
resourceQuery: /url/, // *.svg?react
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
test: /\.svg$/i,
|
|
179
|
+
issuer: /\.[jt]sx?$/,
|
|
180
|
+
use: ['@svgr/webpack'],
|
|
202
181
|
},
|
|
203
182
|
{
|
|
204
|
-
test: /\.(jpe?g|png|gif)$/i,
|
|
183
|
+
test: /\.(jpe?g|png|gif|ico)$/i,
|
|
205
184
|
exclude: excludeNodeModulesExcept(['@elliemae/*']),
|
|
206
185
|
type: 'asset',
|
|
207
186
|
},
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
const path = require('path');
|
|
2
|
-
const TerserPlugin = require('terser-webpack-plugin');
|
|
3
2
|
const CompressionPlugin = require('compression-webpack-plugin');
|
|
4
3
|
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
|
|
5
4
|
const HtmlWebpackPlugin = require('html-webpack-plugin');
|
|
6
|
-
const CssMinimizerPlugin = require('css-minimizer-webpack-plugin');
|
|
7
5
|
const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer');
|
|
6
|
+
const { ESBuildMinifyPlugin } = require('esbuild-loader');
|
|
8
7
|
const { getLibraryName } = require('./helpers');
|
|
8
|
+
const { ESBUILD_TARGET } = require('../esbuild');
|
|
9
9
|
|
|
10
10
|
const libraryName = getLibraryName();
|
|
11
11
|
|
|
@@ -23,17 +23,10 @@ module.exports = require('./webpack.lib.base.babel')({
|
|
|
23
23
|
moduleIds: 'deterministic',
|
|
24
24
|
minimize: true,
|
|
25
25
|
minimizer: [
|
|
26
|
-
new
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
comparisons: false,
|
|
30
|
-
},
|
|
31
|
-
format: {
|
|
32
|
-
comments: false,
|
|
33
|
-
},
|
|
34
|
-
},
|
|
26
|
+
new ESBuildMinifyPlugin({
|
|
27
|
+
target: ESBUILD_TARGET,
|
|
28
|
+
css: true,
|
|
35
29
|
}),
|
|
36
|
-
new CssMinimizerPlugin(),
|
|
37
30
|
],
|
|
38
31
|
nodeEnv: 'production',
|
|
39
32
|
sideEffects: true,
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
+
/* eslint-disable max-lines */
|
|
1
2
|
const path = require('path');
|
|
2
3
|
const HtmlWebpackPlugin = require('html-webpack-plugin');
|
|
3
4
|
const { GenerateSW } = require('workbox-webpack-plugin');
|
|
4
|
-
const TerserPlugin = require('terser-webpack-plugin');
|
|
5
5
|
const CompressionPlugin = require('compression-webpack-plugin');
|
|
6
6
|
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
|
|
7
|
-
const CssMinimizerPlugin = require('css-minimizer-webpack-plugin');
|
|
8
7
|
const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer');
|
|
8
|
+
const { ESBuildMinifyPlugin } = require('esbuild-loader');
|
|
9
9
|
|
|
10
10
|
const baseConfigFactory = require('./webpack.base.babel');
|
|
11
11
|
const {
|
|
@@ -16,6 +16,7 @@ const {
|
|
|
16
16
|
getAppVersion,
|
|
17
17
|
isGoogleTagManagerEnabled,
|
|
18
18
|
} = require('./helpers');
|
|
19
|
+
const { ESBUILD_TARGET } = require('../esbuild');
|
|
19
20
|
|
|
20
21
|
const getProdConfig = ({ latestVersion = true } = {}) => {
|
|
21
22
|
const { buildPath, publicPath } = getPaths(latestVersion);
|
|
@@ -39,17 +40,10 @@ const getProdConfig = ({ latestVersion = true } = {}) => {
|
|
|
39
40
|
optimization: {
|
|
40
41
|
moduleIds: 'deterministic',
|
|
41
42
|
minimizer: [
|
|
42
|
-
new
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
comparisons: false,
|
|
46
|
-
},
|
|
47
|
-
format: {
|
|
48
|
-
comments: false,
|
|
49
|
-
},
|
|
50
|
-
},
|
|
43
|
+
new ESBuildMinifyPlugin({
|
|
44
|
+
target: ESBUILD_TARGET,
|
|
45
|
+
css: true,
|
|
51
46
|
}),
|
|
52
|
-
new CssMinimizerPlugin(),
|
|
53
47
|
],
|
|
54
48
|
runtimeChunk: true,
|
|
55
49
|
splitChunks: {
|
|
@@ -78,7 +72,13 @@ const getProdConfig = ({ latestVersion = true } = {}) => {
|
|
|
78
72
|
filename: '[path][base].gz',
|
|
79
73
|
algorithm: 'gzip',
|
|
80
74
|
test: /\.js$|\.css$$/,
|
|
81
|
-
exclude: [
|
|
75
|
+
exclude: [
|
|
76
|
+
/\/adrum-ext/,
|
|
77
|
+
/\/emuiUserMonitoring/,
|
|
78
|
+
/\/emuiDiagnostics/,
|
|
79
|
+
/\/emuiAppLoader/,
|
|
80
|
+
/\/encwLoader/,
|
|
81
|
+
],
|
|
82
82
|
// we are compressing all files since in aws cloudfront edge lambda, we don't want to whitelist files that are not compressed due to below limits
|
|
83
83
|
minRatio: Number.MAX_SAFE_INTEGER,
|
|
84
84
|
}),
|
|
@@ -120,7 +120,6 @@ const htmlWebpackPlugin = new HtmlWebpackPlugin({
|
|
|
120
120
|
? 'app/index.html'
|
|
121
121
|
: 'app/index-app-loader.html',
|
|
122
122
|
minify: {
|
|
123
|
-
// eslint-disable-next-line max-lines
|
|
124
123
|
removeComments: true,
|
|
125
124
|
collapseWhitespace: true,
|
|
126
125
|
removeRedundantAttributes: true,
|
|
@@ -3,17 +3,14 @@ const webpack = require('webpack');
|
|
|
3
3
|
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
|
|
4
4
|
const CopyWebpackPlugin = require('copy-webpack-plugin');
|
|
5
5
|
const CompressionPlugin = require('compression-webpack-plugin');
|
|
6
|
-
const TsconfigPathsPlugin = require('tsconfig-paths-webpack-plugin');
|
|
7
6
|
const {
|
|
8
7
|
getAppConfig,
|
|
9
8
|
isApp,
|
|
10
9
|
getAlias,
|
|
11
10
|
excludeNodeModulesExcept,
|
|
12
11
|
modulesToTranspile,
|
|
13
|
-
resolveExtensions,
|
|
14
|
-
mainFields,
|
|
15
|
-
getMediaPath,
|
|
16
12
|
} = require('./helpers');
|
|
13
|
+
const { ESBUILD_TARGET } = require('../esbuild');
|
|
17
14
|
|
|
18
15
|
const IS_APP = isApp();
|
|
19
16
|
const CWD = process.cwd();
|
|
@@ -101,9 +98,10 @@ const getModuleRules = () => [
|
|
|
101
98
|
fullySpecified: false,
|
|
102
99
|
},
|
|
103
100
|
use: {
|
|
104
|
-
loader: '
|
|
101
|
+
loader: 'esbuild-loader',
|
|
105
102
|
options: {
|
|
106
|
-
|
|
103
|
+
loader: 'jsx',
|
|
104
|
+
target: ESBUILD_TARGET,
|
|
107
105
|
},
|
|
108
106
|
},
|
|
109
107
|
},
|
|
@@ -113,22 +111,16 @@ const getModuleRules = () => [
|
|
|
113
111
|
type: 'asset/resource',
|
|
114
112
|
},
|
|
115
113
|
{
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
loader: 'file-loader',
|
|
124
|
-
options: {
|
|
125
|
-
name: getMediaPath(),
|
|
126
|
-
},
|
|
127
|
-
},
|
|
128
|
-
],
|
|
114
|
+
type: 'asset',
|
|
115
|
+
resourceQuery: /url/, // *.svg?react
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
test: /\.svg$/i,
|
|
119
|
+
issuer: /\.[jt]sx?$/,
|
|
120
|
+
use: ['@svgr/webpack'],
|
|
129
121
|
},
|
|
130
122
|
{
|
|
131
|
-
test: /\.(jpe?g|png|gif)$/i,
|
|
123
|
+
test: /\.(jpe?g|png|gif|ico)$/i,
|
|
132
124
|
exclude: excludeNodeModulesExcept(['@elliemae/*']),
|
|
133
125
|
type: 'asset',
|
|
134
126
|
},
|
|
@@ -155,9 +147,6 @@ exports.webpackFinal = async (config, { configType }) => {
|
|
|
155
147
|
|
|
156
148
|
config.resolve.alias = { ...config.resolve.alias, ...getAlias() };
|
|
157
149
|
config.resolve.fallback = { ...config.resolve.fallback, crypto: false };
|
|
158
|
-
config.resolve.plugins = (config.resolve.plugins || []).concat([
|
|
159
|
-
new TsconfigPathsPlugin({ extensions: resolveExtensions, mainFields }),
|
|
160
|
-
]);
|
|
161
150
|
|
|
162
151
|
config.externals = config.externals || {};
|
|
163
152
|
config.externals['@elliemae/pui-user-monitoring'] = 'emuiUserMonitoring';
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elliemae/pui-cli",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.0.0-beta.11",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "EllieMae Platform UI CLI",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -66,38 +66,36 @@
|
|
|
66
66
|
"@commitlint/cli": "~15.0.0",
|
|
67
67
|
"@commitlint/config-conventional": "~15.0.0",
|
|
68
68
|
"@elliemae/browserslist-config-elliemae": "~1.2.1",
|
|
69
|
-
"@pmmmwh/react-refresh-webpack-plugin": "~0.5.
|
|
69
|
+
"@pmmmwh/react-refresh-webpack-plugin": "~0.5.3",
|
|
70
70
|
"@semantic-release/changelog": "~6.0.1",
|
|
71
71
|
"@semantic-release/exec": "~6.0.2",
|
|
72
72
|
"@semantic-release/git": "~10.0.1",
|
|
73
|
-
"@storybook/addon-a11y": "~6.
|
|
74
|
-
"@storybook/addon-actions": "~6.
|
|
75
|
-
"@storybook/addon-backgrounds": "~6.
|
|
76
|
-
"@storybook/addon-
|
|
77
|
-
"@storybook/addon-
|
|
78
|
-
"@storybook/addon-docs": "~6.3.12",
|
|
73
|
+
"@storybook/addon-a11y": "~6.4.1",
|
|
74
|
+
"@storybook/addon-actions": "~6.4.1",
|
|
75
|
+
"@storybook/addon-backgrounds": "~6.4.1",
|
|
76
|
+
"@storybook/addon-controls": "~6.4.1",
|
|
77
|
+
"@storybook/addon-docs": "~6.4.1",
|
|
79
78
|
"@storybook/addon-events": "~6.2.9",
|
|
80
|
-
"@storybook/addon-
|
|
81
|
-
"@storybook/addon-
|
|
82
|
-
"@storybook/addon-
|
|
83
|
-
"@storybook/addon-
|
|
84
|
-
"@storybook/
|
|
85
|
-
"@storybook/
|
|
86
|
-
"@storybook/
|
|
87
|
-
"@storybook/
|
|
88
|
-
"@storybook/
|
|
89
|
-
"@storybook/theming": "~6.3.12",
|
|
79
|
+
"@storybook/addon-links": "~6.4.1",
|
|
80
|
+
"@storybook/addon-storysource": "~6.4.1",
|
|
81
|
+
"@storybook/addon-toolbars": "~6.4.1",
|
|
82
|
+
"@storybook/addon-viewport": "~6.4.1",
|
|
83
|
+
"@storybook/addons": "~6.4.1",
|
|
84
|
+
"@storybook/builder-webpack5": "~6.4.1",
|
|
85
|
+
"@storybook/manager-webpack5": "~6.4.1",
|
|
86
|
+
"@storybook/react": "~6.4.1",
|
|
87
|
+
"@storybook/theming": "~6.4.1",
|
|
90
88
|
"@stylelint/postcss-css-in-js": "~0.37.2",
|
|
91
|
-
"@svgr/webpack": "~
|
|
89
|
+
"@svgr/webpack": "~6.0.0",
|
|
92
90
|
"@testing-library/jest-dom": "~5.15.1",
|
|
93
91
|
"@testing-library/react": "~12.1.2",
|
|
94
92
|
"@testing-library/react-hooks": "~7.0.2",
|
|
95
93
|
"@types/jest": "~27.0.3",
|
|
96
|
-
"@types/node": "~16.11.
|
|
94
|
+
"@types/node": "~16.11.11",
|
|
97
95
|
"@types/rimraf": "~3.0.2",
|
|
98
96
|
"@types/testing-library__jest-dom": "~5.14.1",
|
|
99
|
-
"@typescript-eslint/eslint-plugin": "~5.
|
|
100
|
-
"@typescript-eslint/parser": "~5.
|
|
97
|
+
"@typescript-eslint/eslint-plugin": "~5.5.0",
|
|
98
|
+
"@typescript-eslint/parser": "~5.5.0",
|
|
101
99
|
"autoprefixer": "~10.4.0",
|
|
102
100
|
"axe-core": "~4.3.5",
|
|
103
101
|
"babel-loader": "~8.2.3",
|
|
@@ -108,7 +106,7 @@
|
|
|
108
106
|
"babel-plugin-lodash": "~3.3.4",
|
|
109
107
|
"babel-plugin-module-resolver": "~4.1.0",
|
|
110
108
|
"babel-plugin-source-map-support": "~2.1.3",
|
|
111
|
-
"babel-plugin-styled-components": "~2.0.
|
|
109
|
+
"babel-plugin-styled-components": "~2.0.2",
|
|
112
110
|
"babel-plugin-transform-react-remove-prop-types": "~0.4.24",
|
|
113
111
|
"babel-plugin-transform-remove-console": "~6.9.4",
|
|
114
112
|
"babel-plugin-transform-strip-block": "~0.0.4",
|
|
@@ -132,6 +130,9 @@
|
|
|
132
130
|
"dotenv": "~10.0.0",
|
|
133
131
|
"dotenv-webpack": "~7.0.3",
|
|
134
132
|
"duplicate-package-checker-webpack-plugin": "~3.0.0",
|
|
133
|
+
"esbuild": "~0.14.1",
|
|
134
|
+
"esbuild-jest": "~0.5.0",
|
|
135
|
+
"esbuild-loader": "~2.16.0",
|
|
135
136
|
"eslint": "~8.3.0",
|
|
136
137
|
"eslint-config-airbnb": "~18.2.1",
|
|
137
138
|
"eslint-config-airbnb-base": "~15.0.0",
|
|
@@ -152,13 +153,14 @@
|
|
|
152
153
|
"eslint-plugin-react": "~7.27.1",
|
|
153
154
|
"eslint-plugin-react-hooks": "~4.3.0",
|
|
154
155
|
"eslint-plugin-redux-saga": "~1.2.1",
|
|
156
|
+
"eslint-plugin-storybook": "~0.5.1",
|
|
155
157
|
"eslint-plugin-testing-library": "~5.0.0",
|
|
156
158
|
"eslint-plugin-wdio": "~7.4.2",
|
|
157
159
|
"execa": "~5.1.1",
|
|
158
160
|
"express": "~4.17.1",
|
|
159
161
|
"express-pino-logger": "~7.0.0",
|
|
160
162
|
"file-loader": "~6.2.0",
|
|
161
|
-
"fork-ts-checker-webpack-plugin": "~6.
|
|
163
|
+
"fork-ts-checker-webpack-plugin": "~6.5.0",
|
|
162
164
|
"helmet-csp": "~3.4.0",
|
|
163
165
|
"html-loader": "~3.0.1",
|
|
164
166
|
"html-webpack-plugin": "~5.5.0",
|
|
@@ -169,7 +171,7 @@
|
|
|
169
171
|
"imports-loader": "~3.1.1",
|
|
170
172
|
"ip": "~1.1.5",
|
|
171
173
|
"jest-axe": "~5.0.1",
|
|
172
|
-
"jest-cli": "~27.
|
|
174
|
+
"jest-cli": "~27.4.2",
|
|
173
175
|
"jest-sonar-reporter": "~2.0.0",
|
|
174
176
|
"jest-styled-components": "~7.0.8",
|
|
175
177
|
"jscodeshift": "~0.13.0",
|
|
@@ -180,22 +182,22 @@
|
|
|
180
182
|
"moment": "~2.29.1",
|
|
181
183
|
"moment-locales-webpack-plugin": "~1.2.0",
|
|
182
184
|
"msw": "~0.35.0",
|
|
183
|
-
"node-plop": "~0.
|
|
185
|
+
"node-plop": "~0.30.0",
|
|
184
186
|
"nodemon": "~2.0.15",
|
|
185
187
|
"npm-check-updates": "12.0.2",
|
|
186
188
|
"null-loader": "~4.0.1",
|
|
187
|
-
"pino": "~7.
|
|
189
|
+
"pino": "~7.5.0",
|
|
188
190
|
"pino-pretty": "~7.2.0",
|
|
189
191
|
"pinst": "~2.1.6",
|
|
190
|
-
"plop": "~
|
|
191
|
-
"postcss": "~8.4.
|
|
192
|
+
"plop": "~3.0.1",
|
|
193
|
+
"postcss": "~8.4.4",
|
|
192
194
|
"postcss-jsx": "~0.36.4",
|
|
193
195
|
"postcss-html": "~1.3.0",
|
|
194
196
|
"postcss-markdown": "~1.2.0",
|
|
195
197
|
"postcss-syntax": "~0.36.2",
|
|
196
|
-
"postcss-loader": "~6.2.
|
|
198
|
+
"postcss-loader": "~6.2.1",
|
|
197
199
|
"postcss-preset-env": "~7.0.1",
|
|
198
|
-
"prettier": "~2.
|
|
200
|
+
"prettier": "~2.5.0",
|
|
199
201
|
"pug": "~3.0.2",
|
|
200
202
|
"pug-loader": "~2.4.0",
|
|
201
203
|
"raf": "~3.4.1",
|
|
@@ -210,6 +212,8 @@
|
|
|
210
212
|
"semantic-release": "~18.0.1",
|
|
211
213
|
"shelljs": "~0.8.4",
|
|
212
214
|
"slackify-markdown": "~4.3.0",
|
|
215
|
+
"storybook-builder-vite": "~0.1.10",
|
|
216
|
+
"storybook-addon-turbo-build": "~1.0.1",
|
|
213
217
|
"storybook-react-router": "~1.0.8",
|
|
214
218
|
"style-loader": "~3.3.1",
|
|
215
219
|
"stylelint": "~14.1.0",
|
|
@@ -230,7 +234,8 @@
|
|
|
230
234
|
"update-notifier": "~5.1.0",
|
|
231
235
|
"url-loader": "~4.1.1",
|
|
232
236
|
"uuid": "~8.3.2",
|
|
233
|
-
"
|
|
237
|
+
"vite": "~2.6.14",
|
|
238
|
+
"webpack": "~5.64.4",
|
|
234
239
|
"webpack-bundle-analyzer": "~4.5.0",
|
|
235
240
|
"webpack-cli": "~4.9.1",
|
|
236
241
|
"webpack-dev-middleware": "~5.2.2",
|