@elliemae/pui-cli 5.18.0 → 6.0.0-beta.12
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 +8 -35
- package/package.json +32 -26
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,16 +3,11 @@ 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
|
-
modulesToTranspile,
|
|
13
|
-
resolveExtensions,
|
|
14
|
-
mainFields,
|
|
15
|
-
getMediaPath,
|
|
16
11
|
} = require('./helpers');
|
|
17
12
|
|
|
18
13
|
const IS_APP = isApp();
|
|
@@ -94,41 +89,22 @@ const getModulePreRules = () => [
|
|
|
94
89
|
];
|
|
95
90
|
|
|
96
91
|
const getModuleRules = () => [
|
|
97
|
-
{
|
|
98
|
-
test: /\.(js|ts|jsx|tsx)$/,
|
|
99
|
-
exclude: excludeNodeModulesExcept(modulesToTranspile),
|
|
100
|
-
resolve: {
|
|
101
|
-
fullySpecified: false,
|
|
102
|
-
},
|
|
103
|
-
use: {
|
|
104
|
-
loader: 'babel-loader',
|
|
105
|
-
options: {
|
|
106
|
-
cacheDirectory: true,
|
|
107
|
-
},
|
|
108
|
-
},
|
|
109
|
-
},
|
|
110
92
|
{
|
|
111
93
|
test: /\.(woff|woff2)$/,
|
|
112
94
|
exclude: excludeNodeModulesExcept(['@elliemae/*']),
|
|
113
95
|
type: 'asset/resource',
|
|
114
96
|
},
|
|
115
97
|
{
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
loader: 'file-loader',
|
|
124
|
-
options: {
|
|
125
|
-
name: getMediaPath(),
|
|
126
|
-
},
|
|
127
|
-
},
|
|
128
|
-
],
|
|
98
|
+
type: 'asset',
|
|
99
|
+
resourceQuery: /url/, // *.svg?react
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
test: /\.svg$/i,
|
|
103
|
+
issuer: /\.[jt]sx?$/,
|
|
104
|
+
use: ['@svgr/webpack'],
|
|
129
105
|
},
|
|
130
106
|
{
|
|
131
|
-
test: /\.(jpe?g|png|gif)$/i,
|
|
107
|
+
test: /\.(jpe?g|png|gif|ico)$/i,
|
|
132
108
|
exclude: excludeNodeModulesExcept(['@elliemae/*']),
|
|
133
109
|
type: 'asset',
|
|
134
110
|
},
|
|
@@ -155,9 +131,6 @@ exports.webpackFinal = async (config, { configType }) => {
|
|
|
155
131
|
|
|
156
132
|
config.resolve.alias = { ...config.resolve.alias, ...getAlias() };
|
|
157
133
|
config.resolve.fallback = { ...config.resolve.fallback, crypto: false };
|
|
158
|
-
config.resolve.plugins = (config.resolve.plugins || []).concat([
|
|
159
|
-
new TsconfigPathsPlugin({ extensions: resolveExtensions, mainFields }),
|
|
160
|
-
]);
|
|
161
134
|
|
|
162
135
|
config.externals = config.externals || {};
|
|
163
136
|
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.12",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "EllieMae Platform UI CLI",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -70,34 +70,33 @@
|
|
|
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-links": "~6.
|
|
82
|
-
"@storybook/addon-storysource": "~6.
|
|
83
|
-
"@storybook/addon-toolbars": "~6.
|
|
84
|
-
"@storybook/addon-viewport": "~6.
|
|
85
|
-
"@storybook/addons": "~6.
|
|
86
|
-
"@storybook/builder-webpack5": "~6.
|
|
87
|
-
"@storybook/manager-webpack5": "~6.
|
|
88
|
-
"@storybook/react": "~6.
|
|
89
|
-
"@storybook/theming": "~6.
|
|
79
|
+
"@storybook/addon-interactions": "~6.4.1",
|
|
80
|
+
"@storybook/addon-links": "~6.4.1",
|
|
81
|
+
"@storybook/addon-storysource": "~6.4.1",
|
|
82
|
+
"@storybook/addon-toolbars": "~6.4.1",
|
|
83
|
+
"@storybook/addon-viewport": "~6.4.1",
|
|
84
|
+
"@storybook/addons": "~6.4.1",
|
|
85
|
+
"@storybook/builder-webpack5": "~6.4.1",
|
|
86
|
+
"@storybook/manager-webpack5": "~6.4.1",
|
|
87
|
+
"@storybook/react": "~6.4.1",
|
|
88
|
+
"@storybook/theming": "~6.4.1",
|
|
90
89
|
"@stylelint/postcss-css-in-js": "~0.37.2",
|
|
91
|
-
"@svgr/webpack": "~
|
|
90
|
+
"@svgr/webpack": "~6.0.0",
|
|
92
91
|
"@testing-library/jest-dom": "~5.15.1",
|
|
93
92
|
"@testing-library/react": "~12.1.2",
|
|
94
93
|
"@testing-library/react-hooks": "~7.0.2",
|
|
95
94
|
"@types/jest": "~27.0.3",
|
|
96
|
-
"@types/node": "~16.11.
|
|
95
|
+
"@types/node": "~16.11.11",
|
|
97
96
|
"@types/rimraf": "~3.0.2",
|
|
98
97
|
"@types/testing-library__jest-dom": "~5.14.1",
|
|
99
|
-
"@typescript-eslint/eslint-plugin": "~5.
|
|
100
|
-
"@typescript-eslint/parser": "~5.
|
|
98
|
+
"@typescript-eslint/eslint-plugin": "~5.5.0",
|
|
99
|
+
"@typescript-eslint/parser": "~5.5.0",
|
|
101
100
|
"autoprefixer": "~10.4.0",
|
|
102
101
|
"axe-core": "~4.3.5",
|
|
103
102
|
"babel-loader": "~8.2.3",
|
|
@@ -132,6 +131,9 @@
|
|
|
132
131
|
"dotenv": "~10.0.0",
|
|
133
132
|
"dotenv-webpack": "~7.0.3",
|
|
134
133
|
"duplicate-package-checker-webpack-plugin": "~3.0.0",
|
|
134
|
+
"esbuild": "~0.14.1",
|
|
135
|
+
"esbuild-jest": "~0.5.0",
|
|
136
|
+
"esbuild-loader": "~2.16.0",
|
|
135
137
|
"eslint": "~8.3.0",
|
|
136
138
|
"eslint-config-airbnb": "~18.2.1",
|
|
137
139
|
"eslint-config-airbnb-base": "~15.0.0",
|
|
@@ -152,13 +154,14 @@
|
|
|
152
154
|
"eslint-plugin-react": "~7.27.1",
|
|
153
155
|
"eslint-plugin-react-hooks": "~4.3.0",
|
|
154
156
|
"eslint-plugin-redux-saga": "~1.2.1",
|
|
157
|
+
"eslint-plugin-storybook": "~0.5.1",
|
|
155
158
|
"eslint-plugin-testing-library": "~5.0.0",
|
|
156
159
|
"eslint-plugin-wdio": "~7.4.2",
|
|
157
160
|
"execa": "~5.1.1",
|
|
158
161
|
"express": "~4.17.1",
|
|
159
162
|
"express-pino-logger": "~7.0.0",
|
|
160
163
|
"file-loader": "~6.2.0",
|
|
161
|
-
"fork-ts-checker-webpack-plugin": "~6.
|
|
164
|
+
"fork-ts-checker-webpack-plugin": "~6.5.0",
|
|
162
165
|
"helmet-csp": "~3.4.0",
|
|
163
166
|
"html-loader": "~3.0.1",
|
|
164
167
|
"html-webpack-plugin": "~5.5.0",
|
|
@@ -169,7 +172,7 @@
|
|
|
169
172
|
"imports-loader": "~3.1.1",
|
|
170
173
|
"ip": "~1.1.5",
|
|
171
174
|
"jest-axe": "~5.0.1",
|
|
172
|
-
"jest-cli": "~27.4.
|
|
175
|
+
"jest-cli": "~27.4.2",
|
|
173
176
|
"jest-sonar-reporter": "~2.0.0",
|
|
174
177
|
"jest-styled-components": "~7.0.8",
|
|
175
178
|
"jscodeshift": "~0.13.0",
|
|
@@ -210,6 +213,8 @@
|
|
|
210
213
|
"semantic-release": "~18.0.1",
|
|
211
214
|
"shelljs": "~0.8.4",
|
|
212
215
|
"slackify-markdown": "~4.3.0",
|
|
216
|
+
"storybook-builder-vite": "~0.1.10",
|
|
217
|
+
"storybook-addon-turbo-build": "~1.0.1",
|
|
213
218
|
"storybook-react-router": "~1.0.8",
|
|
214
219
|
"style-loader": "~3.3.1",
|
|
215
220
|
"stylelint": "~14.1.0",
|
|
@@ -221,15 +226,16 @@
|
|
|
221
226
|
"svgo": "~2.8.0",
|
|
222
227
|
"terser-webpack-plugin": "~5.2.5",
|
|
223
228
|
"ts-node": "~10.4.0",
|
|
224
|
-
"tsc-alias": "~1.4.
|
|
229
|
+
"tsc-alias": "~1.4.2",
|
|
225
230
|
"tsc-files": "~1.1.3",
|
|
226
231
|
"tsconfig-paths": "~3.12.0",
|
|
227
232
|
"tsconfig-paths-webpack-plugin": "~3.5.2",
|
|
228
|
-
"type-fest": "~2.
|
|
233
|
+
"type-fest": "~2.7.0",
|
|
229
234
|
"typescript": "~4.5.2",
|
|
230
235
|
"update-notifier": "~5.1.0",
|
|
231
236
|
"url-loader": "~4.1.1",
|
|
232
237
|
"uuid": "~8.3.2",
|
|
238
|
+
"vite": "~2.6.14",
|
|
233
239
|
"webpack": "~5.64.4",
|
|
234
240
|
"webpack-bundle-analyzer": "~4.5.0",
|
|
235
241
|
"webpack-cli": "~4.9.1",
|
|
@@ -241,7 +247,7 @@
|
|
|
241
247
|
"webpack-strip-block": "~0.3.0",
|
|
242
248
|
"whatwg-fetch": "~3.6.2",
|
|
243
249
|
"workbox-webpack-plugin": "~6.4.1",
|
|
244
|
-
"yargs": "~17.
|
|
250
|
+
"yargs": "~17.3.0"
|
|
245
251
|
},
|
|
246
252
|
"devDependencies": {
|
|
247
253
|
"redux": "~4.1.2",
|