@dr.pogodin/react-utils 1.25.5 → 1.26.0
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/babel.config.js +3 -1
- package/bin/build.js +25 -5
- package/build/development/client/getInj.js +9 -8
- package/build/development/client/getInj.js.map +1 -1
- package/build/development/client/index.js +6 -3
- package/build/development/client/index.js.map +1 -1
- package/build/development/client/init.js +4 -0
- package/build/development/client/init.js.map +1 -1
- package/build/development/index.js +168 -42
- package/build/development/index.js.map +1 -1
- package/build/development/server/Cache.js +13 -13
- package/build/development/server/Cache.js.map +1 -1
- package/build/development/server/index.js +16 -24
- package/build/development/server/index.js.map +1 -1
- package/build/development/server/renderer.js +56 -44
- package/build/development/server/renderer.js.map +1 -1
- package/build/development/server/server.js +9 -5
- package/build/development/server/server.js.map +1 -1
- package/build/development/server/utils/errors.js +12 -9
- package/build/development/server/utils/errors.js.map +1 -1
- package/build/development/server/utils/index.js +2 -2
- package/build/development/server/utils/index.js.map +1 -1
- package/build/development/shared/components/Button/index.js +8 -7
- package/build/development/shared/components/Button/index.js.map +1 -1
- package/build/development/shared/components/Checkbox/index.js +25 -28
- package/build/development/shared/components/Checkbox/index.js.map +1 -1
- package/build/development/shared/components/Dropdown/index.js +25 -19
- package/build/development/shared/components/Dropdown/index.js.map +1 -1
- package/build/development/shared/components/GenericLink/index.js +44 -37
- package/build/development/shared/components/GenericLink/index.js.map +1 -1
- package/build/development/shared/components/Input/index.js +8 -9
- package/build/development/shared/components/Input/index.js.map +1 -1
- package/build/development/shared/components/Link.js +10 -9
- package/build/development/shared/components/Link.js.map +1 -1
- package/build/development/shared/components/MetaTags.js +22 -18
- package/build/development/shared/components/MetaTags.js.map +1 -1
- package/build/development/shared/components/Modal/index.js +17 -18
- package/build/development/shared/components/Modal/index.js.map +1 -1
- package/build/development/shared/components/NavLink.js +10 -9
- package/build/development/shared/components/NavLink.js.map +1 -1
- package/build/development/shared/components/PageLayout/index.js +17 -20
- package/build/development/shared/components/PageLayout/index.js.map +1 -1
- package/build/development/shared/components/ScalableRect/index.js +27 -7
- package/build/development/shared/components/ScalableRect/index.js.map +1 -1
- package/build/development/shared/components/Throbber/index.js +14 -23
- package/build/development/shared/components/Throbber/index.js.map +1 -1
- package/build/development/shared/components/WithTooltip/Tooltip.js +20 -24
- package/build/development/shared/components/WithTooltip/Tooltip.js.map +1 -1
- package/build/development/shared/components/WithTooltip/index.js +11 -11
- package/build/development/shared/components/WithTooltip/index.js.map +1 -1
- package/build/development/shared/components/YouTubeVideo/index.js +16 -15
- package/build/development/shared/components/YouTubeVideo/index.js.map +1 -1
- package/build/development/shared/components/index.js +2 -2
- package/build/development/shared/components/index.js.map +1 -1
- package/build/development/shared/utils/config.js +1 -2
- package/build/development/shared/utils/config.js.map +1 -1
- package/build/development/shared/utils/globalState.js +15 -0
- package/build/development/shared/utils/globalState.js.map +1 -0
- package/build/development/shared/utils/index.js +13 -11
- package/build/development/shared/utils/index.js.map +1 -1
- package/build/development/shared/utils/isomorphy/buildInfo.js +7 -3
- package/build/development/shared/utils/isomorphy/buildInfo.js.map +1 -1
- package/build/development/shared/utils/isomorphy/environment-check.js +2 -4
- package/build/development/shared/utils/isomorphy/environment-check.js.map +1 -1
- package/build/development/shared/utils/isomorphy/index.js.map +1 -1
- package/build/development/shared/utils/jest/E2eSsrEnv.js +35 -28
- package/build/development/shared/utils/jest/E2eSsrEnv.js.map +1 -1
- package/build/development/shared/utils/jest/global.js +17 -0
- package/build/development/shared/utils/jest/global.js.map +1 -0
- package/build/development/shared/utils/jest/index.js +18 -11
- package/build/development/shared/utils/jest/index.js.map +1 -1
- package/build/development/shared/utils/splitComponent.js +25 -34
- package/build/development/shared/utils/splitComponent.js.map +1 -1
- package/build/development/shared/utils/time.js +16 -13
- package/build/development/shared/utils/time.js.map +1 -1
- package/build/development/shared/utils/webpack.js +3 -3
- package/build/development/shared/utils/webpack.js.map +1 -1
- package/build/development/web.bundle.js +92 -82
- package/build/production/client/getInj.js +1 -1
- package/build/production/client/getInj.js.map +1 -1
- package/build/production/client/index.js +4 -4
- package/build/production/client/index.js.map +1 -1
- package/build/production/client/init.js +3 -1
- package/build/production/client/init.js.map +1 -1
- package/build/production/index.js +1 -1
- package/build/production/index.js.map +1 -1
- package/build/production/server/Cache.js +7 -8
- package/build/production/server/Cache.js.map +1 -1
- package/build/production/server/index.js +5 -4
- package/build/production/server/index.js.map +1 -1
- package/build/production/server/renderer.js +32 -30
- package/build/production/server/renderer.js.map +1 -1
- package/build/production/server/server.js +7 -5
- package/build/production/server/server.js.map +1 -1
- package/build/production/server/utils/errors.js +9 -10
- package/build/production/server/utils/errors.js.map +1 -1
- package/build/production/server/utils/index.js +1 -1
- package/build/production/server/utils/index.js.map +1 -1
- package/build/production/shared/components/Button/index.js +4 -4
- package/build/production/shared/components/Button/index.js.map +1 -1
- package/build/production/shared/components/Checkbox/index.js +12 -12
- package/build/production/shared/components/Checkbox/index.js.map +1 -1
- package/build/production/shared/components/Dropdown/index.js +11 -11
- package/build/production/shared/components/Dropdown/index.js.map +1 -1
- package/build/production/shared/components/GenericLink/index.js +25 -20
- package/build/production/shared/components/GenericLink/index.js.map +1 -1
- package/build/production/shared/components/Input/index.js +7 -7
- package/build/production/shared/components/Input/index.js.map +1 -1
- package/build/production/shared/components/Link.js +2 -2
- package/build/production/shared/components/Link.js.map +1 -1
- package/build/production/shared/components/MetaTags.js +10 -10
- package/build/production/shared/components/MetaTags.js.map +1 -1
- package/build/production/shared/components/Modal/index.js +2 -2
- package/build/production/shared/components/Modal/index.js.map +1 -1
- package/build/production/shared/components/NavLink.js +1 -1
- package/build/production/shared/components/NavLink.js.map +1 -1
- package/build/production/shared/components/PageLayout/index.js +2 -2
- package/build/production/shared/components/PageLayout/index.js.map +1 -1
- package/build/production/shared/components/ScalableRect/index.js +7 -3
- package/build/production/shared/components/ScalableRect/index.js.map +1 -1
- package/build/production/shared/components/Throbber/index.js +2 -2
- package/build/production/shared/components/Throbber/index.js.map +1 -1
- package/build/production/shared/components/WithTooltip/Tooltip.js +13 -13
- package/build/production/shared/components/WithTooltip/Tooltip.js.map +1 -1
- package/build/production/shared/components/WithTooltip/index.js +3 -3
- package/build/production/shared/components/WithTooltip/index.js.map +1 -1
- package/build/production/shared/components/YouTubeVideo/index.js +7 -7
- package/build/production/shared/components/YouTubeVideo/index.js.map +1 -1
- package/build/production/shared/components/index.js +1 -1
- package/build/production/shared/components/index.js.map +1 -1
- package/build/production/shared/utils/config.js +1 -1
- package/build/production/shared/utils/config.js.map +1 -1
- package/build/production/shared/utils/globalState.js +3 -0
- package/build/production/shared/utils/globalState.js.map +1 -0
- package/build/production/shared/utils/index.js +3 -3
- package/build/production/shared/utils/index.js.map +1 -1
- package/build/production/shared/utils/isomorphy/buildInfo.js +7 -4
- package/build/production/shared/utils/isomorphy/buildInfo.js.map +1 -1
- package/build/production/shared/utils/isomorphy/environment-check.js +2 -2
- package/build/production/shared/utils/isomorphy/environment-check.js.map +1 -1
- package/build/production/shared/utils/isomorphy/index.js.map +1 -1
- package/build/production/shared/utils/jest/E2eSsrEnv.js +9 -9
- package/build/production/shared/utils/jest/E2eSsrEnv.js.map +1 -1
- package/build/production/shared/utils/jest/global.js +2 -0
- package/build/production/shared/utils/jest/global.js.map +1 -0
- package/build/production/shared/utils/jest/index.js +6 -6
- package/build/production/shared/utils/jest/index.js.map +1 -1
- package/build/production/shared/utils/splitComponent.js +16 -16
- package/build/production/shared/utils/splitComponent.js.map +1 -1
- package/build/production/shared/utils/time.js +12 -8
- package/build/production/shared/utils/time.js.map +1 -1
- package/build/production/shared/utils/webpack.js +3 -3
- package/build/production/shared/utils/webpack.js.map +1 -1
- package/build/production/web.bundle.js +1 -1
- package/build/production/web.bundle.js.map +1 -1
- package/build/types-code/client/getInj.d.ts +3 -0
- package/build/types-code/client/index.d.ts +11 -0
- package/build/types-code/client/init.d.ts +9 -0
- package/build/types-code/index.d.ts +10 -0
- package/build/types-code/server/Cache.d.ts +37 -0
- package/build/types-code/server/index.d.ts +145 -0
- package/build/types-code/server/renderer.d.ts +106 -0
- package/build/types-code/server/server.d.ts +41 -0
- package/build/types-code/server/utils/errors.d.ts +104 -0
- package/build/types-code/server/utils/index.d.ts +1 -0
- package/build/types-code/shared/components/Button/index.d.ts +27 -0
- package/build/types-code/shared/components/Checkbox/index.d.ts +21 -0
- package/build/types-code/shared/components/Dropdown/index.d.ts +23 -0
- package/build/types-code/shared/components/GenericLink/index.d.ts +61 -0
- package/build/types-code/shared/components/Input/index.d.ts +11 -0
- package/build/types-code/shared/components/Link.d.ts +12 -0
- package/build/types-code/shared/components/MetaTags.d.ts +68 -0
- package/build/types-code/shared/components/Modal/index.d.ts +26 -0
- package/build/types-code/shared/components/NavLink.d.ts +5 -0
- package/build/types-code/shared/components/PageLayout/index.d.ts +16 -0
- package/build/types-code/shared/components/ScalableRect/index.d.ts +19 -0
- package/build/types-code/shared/components/Throbber/index.d.ts +9 -0
- package/build/types-code/shared/components/WithTooltip/Tooltip.d.ts +23 -0
- package/build/types-code/shared/components/WithTooltip/index.d.ts +17 -0
- package/build/types-code/shared/components/YouTubeVideo/index.d.ts +13 -0
- package/build/types-code/shared/components/index.d.ts +16 -0
- package/build/types-code/shared/utils/config.d.ts +2 -0
- package/build/types-code/shared/utils/globalState.d.ts +20 -0
- package/build/types-code/shared/utils/index.d.ts +52 -0
- package/build/types-code/shared/utils/isomorphy/buildInfo.d.ts +23 -0
- package/build/types-code/shared/utils/isomorphy/environment-check.d.ts +11 -0
- package/build/types-code/shared/utils/isomorphy/index.d.ts +20 -0
- package/build/types-code/shared/utils/jest/E2eSsrEnv.d.ts +31 -0
- package/build/types-code/shared/utils/jest/global.d.ts +12 -0
- package/build/types-code/shared/utils/jest/index.d.ts +85 -0
- package/build/types-code/shared/utils/splitComponent.d.ts +41 -0
- package/build/types-code/shared/utils/time.d.ts +62 -0
- package/build/types-code/shared/utils/webpack.d.ts +18 -0
- package/build/types-scss/__tests__/js/config/publicPath support/__assets__/style.scss.d.ts +1 -0
- package/build/types-scss/__tests__/js/config/stylename-generation/__assets__/MockPackageA/TestComponent/style.scss.d.ts +1 -0
- package/build/types-scss/__tests__/js/config/stylename-generation/__assets__/MockPackageB/TestComponent/style.scss.d.ts +1 -0
- package/build/types-scss/__tests__/js/config/stylename-generation/__assets__/style.scss.d.ts +1 -0
- package/build/types-scss/__tests__/js/shared/components/NavLink/styles.scss.d.ts +1 -0
- package/build/types-scss/__tests__/js/shared/utils/splitComponent/__assets__/SampleScene/ComponentA/style.scss.d.ts +1 -0
- package/build/types-scss/__tests__/js/shared/utils/splitComponent/__assets__/SampleScene/ComponentB/style.scss.d.ts +1 -0
- package/build/types-scss/__tests__/js/shared/utils/splitComponent/__assets__/SampleScene/ComponentC/style.scss.d.ts +1 -0
- package/build/types-scss/__tests__/js/shared/utils/splitComponent/__assets__/SampleScene/style.scss.d.ts +1 -0
- package/build/types-scss/__tests__/ts/config/publicPath support/__assets__/style.scss.d.ts +1 -0
- package/build/types-scss/__tests__/ts/config/stylename-generation/__assets__/MockPackageA/TestComponent/style.scss.d.ts +1 -0
- package/build/types-scss/__tests__/ts/config/stylename-generation/__assets__/MockPackageB/TestComponent/style.scss.d.ts +1 -0
- package/build/types-scss/__tests__/ts/config/stylename-generation/__assets__/style.scss.d.ts +1 -0
- package/build/types-scss/__tests__/ts/shared/components/NavLink/styles.scss.d.ts +1 -0
- package/build/types-scss/__tests__/ts/shared/utils/splitComponent/__assets__/SampleScene/ComponentA/style.scss.d.ts +1 -0
- package/build/types-scss/__tests__/ts/shared/utils/splitComponent/__assets__/SampleScene/ComponentB/style.scss.d.ts +1 -0
- package/build/types-scss/__tests__/ts/shared/utils/splitComponent/__assets__/SampleScene/ComponentC/style.scss.d.ts +1 -0
- package/build/types-scss/__tests__/ts/shared/utils/splitComponent/__assets__/SampleScene/style.scss.d.ts +1 -0
- package/build/types-scss/src/shared/components/Button/style.scss.d.ts +6 -0
- package/build/types-scss/src/shared/components/Checkbox/theme.scss.d.ts +6 -0
- package/build/types-scss/src/shared/components/Dropdown/theme.scss.d.ts +9 -0
- package/build/types-scss/src/shared/components/GenericLink/style.scss.d.ts +1 -0
- package/build/types-scss/src/shared/components/Input/theme.scss.d.ts +6 -0
- package/build/types-scss/src/shared/components/Modal/base-theme.scss.d.ts +5 -0
- package/build/types-scss/src/shared/components/PageLayout/base-theme.scss.d.ts +6 -0
- package/build/types-scss/src/shared/components/ScalableRect/style.scss.d.ts +2 -0
- package/build/types-scss/src/shared/components/Throbber/theme.scss.d.ts +6 -0
- package/build/types-scss/src/shared/components/WithTooltip/default-theme.scss.d.ts +7 -0
- package/build/types-scss/src/shared/components/YouTubeVideo/base.scss.d.ts +5 -0
- package/build/types-scss/src/shared/components/YouTubeVideo/throbber.scss.d.ts +4 -0
- package/config/eslint/jest.json +3 -2
- package/config/eslint/typescript.js +34 -0
- package/config/jest/default.js +3 -3
- package/package.json +75 -33
- package/src/client/getInj.ts +43 -0
- package/src/client/index.tsx +40 -0
- package/src/client/init.ts +47 -0
- package/src/index.ts +58 -0
- package/src/server/Cache.ts +68 -0
- package/src/server/index.ts +230 -0
- package/src/server/renderer.tsx +604 -0
- package/src/server/server.ts +309 -0
- package/src/server/utils/errors.ts +135 -0
- package/src/server/utils/index.ts +3 -0
- package/src/shared/components/Button/index.tsx +146 -0
- package/src/shared/components/Button/style.scss +53 -0
- package/src/shared/components/Checkbox/index.tsx +71 -0
- package/src/shared/components/Checkbox/theme.scss +43 -0
- package/src/shared/components/Dropdown/index.tsx +144 -0
- package/src/shared/components/Dropdown/theme.scss +63 -0
- package/src/shared/components/GenericLink/index.tsx +157 -0
- package/src/shared/components/GenericLink/style.scss +3 -0
- package/src/shared/components/Input/index.tsx +59 -0
- package/src/shared/components/Input/theme.scss +27 -0
- package/src/shared/components/Link.tsx +21 -0
- package/src/shared/components/MetaTags.tsx +170 -0
- package/src/shared/components/Modal/base-theme.scss +38 -0
- package/src/shared/components/Modal/index.tsx +144 -0
- package/src/shared/components/Modal/styles.scss +5 -0
- package/src/shared/components/NavLink.tsx +13 -0
- package/src/shared/components/PageLayout/base-theme.scss +30 -0
- package/src/shared/components/PageLayout/index.tsx +76 -0
- package/src/shared/components/ScalableRect/index.tsx +84 -0
- package/src/shared/components/ScalableRect/style.scss +10 -0
- package/src/shared/components/Throbber/index.tsx +43 -0
- package/src/shared/components/Throbber/theme.scss +26 -0
- package/src/shared/components/WithTooltip/Tooltip.tsx +353 -0
- package/src/shared/components/WithTooltip/default-theme.scss +36 -0
- package/src/shared/components/WithTooltip/index.tsx +204 -0
- package/src/shared/components/YouTubeVideo/base.scss +13 -0
- package/src/shared/components/YouTubeVideo/index.tsx +96 -0
- package/src/shared/components/YouTubeVideo/throbber.scss +11 -0
- package/src/shared/components/index.ts +17 -0
- package/src/shared/utils/config.ts +21 -0
- package/src/shared/utils/globalState.ts +29 -0
- package/src/shared/utils/index.ts +105 -0
- package/src/shared/utils/isomorphy/buildInfo.ts +54 -0
- package/src/shared/utils/isomorphy/environment-check.ts +18 -0
- package/src/shared/utils/isomorphy/index.ts +38 -0
- package/src/shared/utils/jest/E2eSsrEnv.ts +250 -0
- package/src/shared/utils/jest/global.ts +19 -0
- package/src/shared/utils/jest/index.tsx +157 -0
- package/src/shared/utils/splitComponent.tsx +255 -0
- package/src/shared/utils/time.ts +118 -0
- package/src/shared/utils/webpack.ts +45 -0
- package/src/styles/_global/reset.css +52 -0
- package/src/styles/global.scss +11 -0
- package/tsconfig.configs.json +18 -0
- package/tsconfig.json +27 -0
- package/tsconfig.types.json +53 -0
- package/typed-scss-modules.config.ts +9 -0
- package/types.d.ts +37 -0
- package/{webpack.config.js → webpack.config.ts} +7 -3
- package/config/babel/node-ssr.js +0 -85
- package/config/babel/webpack.js +0 -122
- package/config/webpack/app-base.js +0 -330
- package/config/webpack/app-development.js +0 -80
- package/config/webpack/app-production.js +0 -60
- package/config/webpack/lib-base.js +0 -155
- package/config/webpack/lib-development.js +0 -45
- package/config/webpack/lib-production.js +0 -44
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @category Configs
|
|
3
|
-
* @module webpack/app-development
|
|
4
|
-
* @desc development Webpack configuration for applications.
|
|
5
|
-
*/
|
|
6
|
-
const { clone, defaults } = require('lodash');
|
|
7
|
-
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
|
|
8
|
-
|
|
9
|
-
const ReactRefreshPlugin = require('@pmmmwh/react-refresh-webpack-plugin');
|
|
10
|
-
|
|
11
|
-
const webpack = require('webpack');
|
|
12
|
-
const { merge } = require('webpack-merge');
|
|
13
|
-
|
|
14
|
-
const baseFactory = require('./app-base');
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* @param {object} ops
|
|
18
|
-
* @param {boolean} [ops.dontUseReactGlobalStateDebugging]
|
|
19
|
-
* @param {boolean} [ops.dontUseHmr]
|
|
20
|
-
*/
|
|
21
|
-
module.exports = function configFactory(ops) {
|
|
22
|
-
const o = defaults(clone(ops), {
|
|
23
|
-
cssLocalIdent: '[package]___[path][name]___[local]___[hash:base64:6]',
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
const entry = ['@dr.pogodin/react-utils/build/development/client/init'];
|
|
27
|
-
if (!o.dontUseHmr) entry.push('webpack-hot-middleware/client?reload=true');
|
|
28
|
-
entry.push(...Array.isArray(o.entry) ? o.entry : [o.entry]);
|
|
29
|
-
|
|
30
|
-
const plugins = [
|
|
31
|
-
new MiniCssExtractPlugin({
|
|
32
|
-
chunkFilename: '[id].css',
|
|
33
|
-
filename: '[id].css',
|
|
34
|
-
}),
|
|
35
|
-
new webpack.DefinePlugin({
|
|
36
|
-
'process.env.BABEL_ENV': JSON.stringify('development'),
|
|
37
|
-
'process.env.DEV_TOOLS': JSON.stringify(true),
|
|
38
|
-
'process.env.NODE_ENV': JSON.stringify('development'),
|
|
39
|
-
'process.env.REACT_GLOBAL_STATE_DEBUG':
|
|
40
|
-
JSON.stringify(!o.dontUseReactGlobalStateDebugging),
|
|
41
|
-
}),
|
|
42
|
-
];
|
|
43
|
-
|
|
44
|
-
// TODO: There should be no reason to include these plugins when HMR is opted
|
|
45
|
-
// out, however if I remove them, the compilation fails with obscure
|
|
46
|
-
// "ReferenceError: $RefreshReg$ is not defined" error. For now it seems
|
|
47
|
-
// fine to keep these plugins anyway, thus the shortcut of "if" condition
|
|
48
|
-
// below.
|
|
49
|
-
if (true || !o.dontUseHmr) {
|
|
50
|
-
plugins.push(
|
|
51
|
-
new webpack.HotModuleReplacementPlugin(),
|
|
52
|
-
new ReactRefreshPlugin({
|
|
53
|
-
overlay: {
|
|
54
|
-
sockIntegration: 'whm',
|
|
55
|
-
},
|
|
56
|
-
}),
|
|
57
|
-
);
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
const res = merge(baseFactory({
|
|
61
|
-
...o,
|
|
62
|
-
babelEnv: 'development',
|
|
63
|
-
entry,
|
|
64
|
-
mode: 'development',
|
|
65
|
-
}), {
|
|
66
|
-
output: {
|
|
67
|
-
chunkFilename: '[id].js',
|
|
68
|
-
filename: '[id].js',
|
|
69
|
-
},
|
|
70
|
-
plugins,
|
|
71
|
-
snapshot: {
|
|
72
|
-
// This enforces Webpack to watch for possible changes in node_modules
|
|
73
|
-
// dependencies, which is a great convenience in library-centric dev
|
|
74
|
-
// workflows.
|
|
75
|
-
managedPaths: [],
|
|
76
|
-
},
|
|
77
|
-
});
|
|
78
|
-
|
|
79
|
-
return res;
|
|
80
|
-
};
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @category Configs
|
|
3
|
-
* @module webpack/app-production
|
|
4
|
-
* @desc Production Webpack configuration for applications.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
const CssMinimizerPlugin = require('css-minimizer-webpack-plugin');
|
|
8
|
-
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
|
|
9
|
-
const webpack = require('webpack');
|
|
10
|
-
const { merge } = require('webpack-merge');
|
|
11
|
-
const baseFactory = require('./app-base');
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* @param {object} ops
|
|
15
|
-
* @param {string} ops.context Base URL for resolution of relative config paths.
|
|
16
|
-
* @param {boolean} [ops.dontEmitBuildInfo] If set the `.build-info` file won't
|
|
17
|
-
* be created at the disk during the compilation.
|
|
18
|
-
*/
|
|
19
|
-
module.exports = function configFactory(ops) {
|
|
20
|
-
const entry = [
|
|
21
|
-
'@dr.pogodin/react-utils/build/production/client/init',
|
|
22
|
-
...Array.isArray(ops.entry) ? ops.entry : [ops.entry],
|
|
23
|
-
];
|
|
24
|
-
|
|
25
|
-
const res = merge(baseFactory({
|
|
26
|
-
...ops,
|
|
27
|
-
babelEnv: 'production',
|
|
28
|
-
entry,
|
|
29
|
-
mode: 'production',
|
|
30
|
-
}), {
|
|
31
|
-
optimization: {
|
|
32
|
-
minimizer: [
|
|
33
|
-
'...',
|
|
34
|
-
new CssMinimizerPlugin({
|
|
35
|
-
minimizerOptions: {
|
|
36
|
-
preset: ['default', {
|
|
37
|
-
/* Due to the way our styles are organized, these dangerous
|
|
38
|
-
* optimizations can break our styles, thus they are disabled. */
|
|
39
|
-
discardUnused: false,
|
|
40
|
-
reduceIdents: false,
|
|
41
|
-
zindex: false,
|
|
42
|
-
}],
|
|
43
|
-
},
|
|
44
|
-
}),
|
|
45
|
-
],
|
|
46
|
-
},
|
|
47
|
-
plugins: [
|
|
48
|
-
new webpack.DefinePlugin({
|
|
49
|
-
'process.env.BABEL_ENV': JSON.stringify('production'),
|
|
50
|
-
'process.env.NODE_ENV': JSON.stringify('production'),
|
|
51
|
-
}),
|
|
52
|
-
new MiniCssExtractPlugin({
|
|
53
|
-
chunkFilename: '[contenthash].css',
|
|
54
|
-
filename: '[contenthash].css',
|
|
55
|
-
}),
|
|
56
|
-
],
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
return res;
|
|
60
|
-
};
|
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
// Base Webpack config for ReactJS libraries.
|
|
2
|
-
|
|
3
|
-
const path = require('path');
|
|
4
|
-
|
|
5
|
-
const autoprefixer = require('autoprefixer');
|
|
6
|
-
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
|
|
7
|
-
const { ProgressPlugin } = require('webpack');
|
|
8
|
-
|
|
9
|
-
const {
|
|
10
|
-
getLocalIdent,
|
|
11
|
-
} = require('@dr.pogodin/babel-plugin-react-css-modules/utils');
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* @param {object} ops
|
|
15
|
-
* @param {boolean} [ops.dontUseProgressPlugin] Set to not include progress
|
|
16
|
-
* plugin.
|
|
17
|
-
* @return {object}
|
|
18
|
-
*/
|
|
19
|
-
module.exports = function configFactory(ops) {
|
|
20
|
-
const plugins = [
|
|
21
|
-
new MiniCssExtractPlugin({ filename: 'style.css' }),
|
|
22
|
-
];
|
|
23
|
-
|
|
24
|
-
if (!ops.dontUseProgressPlugin) plugins.push(new ProgressPlugin());
|
|
25
|
-
|
|
26
|
-
return {
|
|
27
|
-
context: ops.context,
|
|
28
|
-
entry: ops.entry,
|
|
29
|
-
externals: [
|
|
30
|
-
/@babel\/runtime/,
|
|
31
|
-
'@dr.pogodin/react-global-state',
|
|
32
|
-
'@dr.pogodin/js-utils',
|
|
33
|
-
'@dr.pogodin/react-themes',
|
|
34
|
-
'@dr.pogodin/react-utils',
|
|
35
|
-
'axios',
|
|
36
|
-
'dayjs',
|
|
37
|
-
'lodash',
|
|
38
|
-
/node-forge/,
|
|
39
|
-
'prop-types',
|
|
40
|
-
'qs',
|
|
41
|
-
'react',
|
|
42
|
-
/react-dom/,
|
|
43
|
-
'react-helmet',
|
|
44
|
-
'react-router-dom',
|
|
45
|
-
'uuid',
|
|
46
|
-
],
|
|
47
|
-
mode: ops.mode,
|
|
48
|
-
output: {
|
|
49
|
-
filename: 'web.bundle.js',
|
|
50
|
-
|
|
51
|
-
// TODO: Check, whether this fix can be dropped.
|
|
52
|
-
// Workaround to fix umd build, restore webpack v3 behaviour
|
|
53
|
-
// https://github.com/webpack/webpack/issues/6677
|
|
54
|
-
// https://github.com/webpack/webpack/issues/6642
|
|
55
|
-
globalObject: "typeof self !== 'undefined' ? self : this",
|
|
56
|
-
|
|
57
|
-
library: ops.library,
|
|
58
|
-
path: ops.outputPath,
|
|
59
|
-
libraryTarget: 'umd',
|
|
60
|
-
},
|
|
61
|
-
plugins,
|
|
62
|
-
module: {
|
|
63
|
-
rules: [{
|
|
64
|
-
/* Handles font imports in url(..) instructions in CSS. Effectively,
|
|
65
|
-
* with such configuration it just rewrites those URLs to point to
|
|
66
|
-
* the original location of the font assets in
|
|
67
|
-
* the library being build. */
|
|
68
|
-
test: /\.(eot|otf|svg|ttf|woff2?)$/,
|
|
69
|
-
include: [
|
|
70
|
-
/node_modules/,
|
|
71
|
-
/src[/\\]assets[/\\]fonts/,
|
|
72
|
-
],
|
|
73
|
-
type: 'asset/resource',
|
|
74
|
-
generator: {
|
|
75
|
-
// TODO: This comes from the older config version which relied on
|
|
76
|
-
// file-loader. It might require some correction to correctly join
|
|
77
|
-
// `publicPath` and `filename`.
|
|
78
|
-
filename: '../shared/[path][name][ext]',
|
|
79
|
-
publicPath: `${ops.library}/build/shared`,
|
|
80
|
-
},
|
|
81
|
-
}, {
|
|
82
|
-
/* Loads JS and JSX moudles, and inlines SVG assets. */
|
|
83
|
-
test: /\.(jsx?|svg)$/,
|
|
84
|
-
exclude: [
|
|
85
|
-
/node_modules/,
|
|
86
|
-
/src[/\\]assets[/\\]fonts/,
|
|
87
|
-
],
|
|
88
|
-
loader: 'babel-loader',
|
|
89
|
-
options: {
|
|
90
|
-
babelrc: false,
|
|
91
|
-
configFile: false,
|
|
92
|
-
envName: ops.babelEnv,
|
|
93
|
-
presets: [
|
|
94
|
-
// NOTE: For the compilation of this very library (react-utils),
|
|
95
|
-
// this plugin path is overriden in webpack.config.js in the root of
|
|
96
|
-
// the codebase.
|
|
97
|
-
['@dr.pogodin/react-utils/config/babel/webpack', {
|
|
98
|
-
noRR: true,
|
|
99
|
-
}],
|
|
100
|
-
],
|
|
101
|
-
...ops.babelLoaderOptions || {},
|
|
102
|
-
},
|
|
103
|
-
}, {
|
|
104
|
-
/* Loads SCSS stylesheets. */
|
|
105
|
-
test: /\.scss/,
|
|
106
|
-
exclude: /node_modules/,
|
|
107
|
-
use: [
|
|
108
|
-
MiniCssExtractPlugin.loader, {
|
|
109
|
-
loader: 'css-loader',
|
|
110
|
-
options: {
|
|
111
|
-
importLoaders: 3,
|
|
112
|
-
modules: {
|
|
113
|
-
getLocalIdent,
|
|
114
|
-
localIdentName: ops.cssLocalIdent,
|
|
115
|
-
},
|
|
116
|
-
},
|
|
117
|
-
}, {
|
|
118
|
-
loader: 'postcss-loader',
|
|
119
|
-
options: {
|
|
120
|
-
postcssOptions: {
|
|
121
|
-
plugins: [
|
|
122
|
-
autoprefixer,
|
|
123
|
-
],
|
|
124
|
-
},
|
|
125
|
-
},
|
|
126
|
-
}, 'resolve-url-loader', {
|
|
127
|
-
loader: 'sass-loader',
|
|
128
|
-
options: {
|
|
129
|
-
sourceMap: true,
|
|
130
|
-
},
|
|
131
|
-
},
|
|
132
|
-
],
|
|
133
|
-
}, {
|
|
134
|
-
/* Loads CSS stylesheets. It is assumed that CSS stylesheets come only
|
|
135
|
-
* from dependencies, as we use SCSS inside our own code. */
|
|
136
|
-
test: /\.css$/,
|
|
137
|
-
use: [
|
|
138
|
-
MiniCssExtractPlugin.loader,
|
|
139
|
-
'css-loader',
|
|
140
|
-
],
|
|
141
|
-
}],
|
|
142
|
-
},
|
|
143
|
-
resolve: {
|
|
144
|
-
alias: {
|
|
145
|
-
/* Aliases to JS an JSX files are handled by Babel. */
|
|
146
|
-
assets: path.resolve(ops.context, 'src/assets'),
|
|
147
|
-
components: path.resolve(ops.context, 'src/shared/components'),
|
|
148
|
-
fonts: path.resolve(ops.context, 'src/assets/fonts'),
|
|
149
|
-
styles: path.resolve(ops.context, 'src/styles'),
|
|
150
|
-
},
|
|
151
|
-
extensions: ['.js', '.json', '.jsx', '.scss'],
|
|
152
|
-
symlinks: false,
|
|
153
|
-
},
|
|
154
|
-
};
|
|
155
|
-
};
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @category Configs
|
|
3
|
-
* @module webpack/lib-development
|
|
4
|
-
* @desc
|
|
5
|
-
* Development Webpack config for ReactJS libraries.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
const path = require('path');
|
|
9
|
-
const webpack = require('webpack');
|
|
10
|
-
const { merge } = require('webpack-merge');
|
|
11
|
-
|
|
12
|
-
const baseFactory = require('./lib-base');
|
|
13
|
-
|
|
14
|
-
module.exports = function configFactory(ops) {
|
|
15
|
-
return merge(
|
|
16
|
-
baseFactory({
|
|
17
|
-
...ops,
|
|
18
|
-
babelEnv: 'development',
|
|
19
|
-
cssLocalIdent: '[package]___[path][name]___[local]___[hash:base64:6]',
|
|
20
|
-
mode: 'development',
|
|
21
|
-
outputPath: path.resolve(__dirname, ops.context, 'build/development'),
|
|
22
|
-
}),
|
|
23
|
-
{
|
|
24
|
-
plugins: [
|
|
25
|
-
new webpack.DefinePlugin({
|
|
26
|
-
// Dev. build of the library wraps modules inside eval() statements,
|
|
27
|
-
// hiding BUILD_INFO literals from the host code's Webpack build, thus
|
|
28
|
-
// leaving them undefined. As a work around, let's get it via global
|
|
29
|
-
// window object.
|
|
30
|
-
BUILD_INFO: 'window.__DEV_BUILD_INFO__',
|
|
31
|
-
|
|
32
|
-
'process.env.BABEL_ENV': JSON.stringify('development'),
|
|
33
|
-
'process.env.NODE_ENV': JSON.stringify('development'),
|
|
34
|
-
'process.env.REACT_GLOBAL_STATE_DEBUG': JSON.stringify(true),
|
|
35
|
-
}),
|
|
36
|
-
],
|
|
37
|
-
snapshot: {
|
|
38
|
-
// This enforces Webpack to watch for possible changes in node_modules
|
|
39
|
-
// dependencies, which is a great convenience in library-centric dev
|
|
40
|
-
// workflows.
|
|
41
|
-
managedPaths: [],
|
|
42
|
-
},
|
|
43
|
-
},
|
|
44
|
-
);
|
|
45
|
-
};
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
// Production Webpack config for ReactJS libraries.
|
|
2
|
-
|
|
3
|
-
const path = require('path');
|
|
4
|
-
|
|
5
|
-
const CssMinimizerPlugin = require('css-minimizer-webpack-plugin');
|
|
6
|
-
const webpack = require('webpack');
|
|
7
|
-
const { merge } = require('webpack-merge');
|
|
8
|
-
|
|
9
|
-
const baseFactory = require('./lib-base');
|
|
10
|
-
|
|
11
|
-
module.exports = function configFactory(ops) {
|
|
12
|
-
const baseConfig = baseFactory({
|
|
13
|
-
...ops,
|
|
14
|
-
babelEnv: 'production',
|
|
15
|
-
cssLocalIdent: '[hash:base64:6]',
|
|
16
|
-
mode: 'production',
|
|
17
|
-
outputPath: path.resolve(__dirname, ops.context, 'build/production'),
|
|
18
|
-
});
|
|
19
|
-
return merge(baseConfig, {
|
|
20
|
-
devtool: 'source-map',
|
|
21
|
-
optimization: {
|
|
22
|
-
minimizer: [
|
|
23
|
-
'...',
|
|
24
|
-
new CssMinimizerPlugin({
|
|
25
|
-
minimizerOptions: {
|
|
26
|
-
preset: ['default', {
|
|
27
|
-
/* Due to the way our styles are organized, these dangerous
|
|
28
|
-
* optimizations can break our styles, thus they are disabled. */
|
|
29
|
-
discardUnused: false,
|
|
30
|
-
reduceIdents: false,
|
|
31
|
-
zindex: false,
|
|
32
|
-
}],
|
|
33
|
-
},
|
|
34
|
-
}),
|
|
35
|
-
],
|
|
36
|
-
},
|
|
37
|
-
plugins: [
|
|
38
|
-
new webpack.DefinePlugin({
|
|
39
|
-
'process.env.BABEL_ENV': JSON.stringify('production'),
|
|
40
|
-
'process.env.NODE_ENV': JSON.stringify('production'),
|
|
41
|
-
}),
|
|
42
|
-
],
|
|
43
|
-
});
|
|
44
|
-
};
|