@mainset/bundler-webpack 0.2.1-rc.1 → 0.3.0-rc.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.
Files changed (27) hide show
  1. package/dist/esm/generate-webpack-config.mjs +19 -0
  2. package/dist/esm/index.mjs +1 -1
  3. package/dist/esm/webpack-config/config-fragments/common.fragment.mjs +1 -1
  4. package/dist/esm/webpack-config/config-fragments/module-rules/module-rules.chunk.mjs +1 -1
  5. package/dist/esm/webpack-config/config-fragments/module-rules/module-rules.fragment.mjs +3 -1
  6. package/dist/esm/webpack-config/config-fragments/ssr-webapp.fragment.mjs +2 -1
  7. package/dist/esm/webpack-config/dev-server.csr.config.mjs +7 -0
  8. package/dist/esm/webpack-config/server.ssr.config.mjs +3 -2
  9. package/dist/esm/webpack-config/webapp.csr.config.mjs +4 -2
  10. package/dist/esm/webpack-config/webapp.ssr.config.mjs +6 -2
  11. package/dist/types/generate-webpack-config.d.mts +4 -0
  12. package/dist/types/index.d.mts +1 -1
  13. package/dist/types/webpack-config/config-fragments/common-webapp.fragment.d.mts +2 -0
  14. package/dist/types/webpack-config/config-fragments/common.fragment.d.mts +3 -0
  15. package/dist/types/webpack-config/config-fragments/csr-webapp.fragment.d.mts +2 -0
  16. package/dist/types/webpack-config/config-fragments/dev.fragment.d.mts +3 -0
  17. package/dist/types/webpack-config/config-fragments/module-rules/index.d.mts +2 -0
  18. package/dist/types/webpack-config/config-fragments/module-rules/module-rules.chunk.d.mts +21 -0
  19. package/dist/types/webpack-config/config-fragments/module-rules/module-rules.fragment.d.mts +4 -0
  20. package/dist/types/webpack-config/config-fragments/prod.fragment.d.mts +3 -0
  21. package/dist/types/webpack-config/config-fragments/ssr-webapp.fragment.d.mts +2 -0
  22. package/dist/types/webpack-config/dev-server.csr.config.d.mts +4 -0
  23. package/dist/types/webpack-config/server.ssr.config.d.mts +3 -0
  24. package/dist/types/webpack-config/webapp.csr.config.d.mts +2 -0
  25. package/dist/types/webpack-config/webapp.ssr.config.d.mts +5 -0
  26. package/package.json +11 -7
  27. package/src/@types/process-env-type.d.ts +1 -0
@@ -0,0 +1,19 @@
1
+ import { merge } from '@mainset/toolkit-js';
2
+ import csrDevServerWebappEnvBasedConfig from './webpack-config/dev-server.csr.config.mjs';
3
+ import ssrEnvBasedConfigs from './webpack-config/webapp.ssr.config.mjs';
4
+ const generateEnvBasedWebpackConfig = (extendedWebpackConfig = {}) => {
5
+ const [ssrServerEnvBasedConfig, ssrWebappEnvBasedConfig] = ssrEnvBasedConfigs;
6
+ const msCliWebpackServeMode = process.env.MS_CLI__WEBPACK_SERVE_MODE;
7
+ switch (msCliWebpackServeMode) {
8
+ case 'ssr':
9
+ return [
10
+ ssrServerEnvBasedConfig,
11
+ merge(ssrWebappEnvBasedConfig, extendedWebpackConfig),
12
+ ];
13
+ case 'csr':
14
+ return merge(csrDevServerWebappEnvBasedConfig, extendedWebpackConfig);
15
+ default:
16
+ throw new Error(`Unknown MS_CLI__WEBPACK_SERVE_MODE: ${msCliWebpackServeMode}. Expected 'ssr' or 'csr'.`);
17
+ }
18
+ };
19
+ export { generateEnvBasedWebpackConfig };
@@ -1 +1 @@
1
- export {};
1
+ export { generateEnvBasedWebpackConfig } from './generate-webpack-config.mjs';
@@ -15,7 +15,7 @@ const commonWebpackConfigFragment = {
15
15
  ],
16
16
  },
17
17
  resolve: {
18
- modules: [runtimePathById.root, 'node_modules'],
18
+ modules: ['node_modules'],
19
19
  extensions: [
20
20
  // Default for {extensions} key: https://webpack.js.org/configuration/resolve/#resolveloader
21
21
  '.js',
@@ -27,7 +27,7 @@ const CSS_LOADER__DEV_RULE_USE_OPTIONS__WEBPACK_CONFIG_CHUNK = {
27
27
  },
28
28
  };
29
29
  // Use options for CSS styles rule in Webpack configuration
30
- const postcssConfigPath = path.join(runtimePathById.root, 'config', 'postcss.config.cjs');
30
+ const postcssConfigPath = path.join(runtimePathById.config, 'postcss.config.cjs');
31
31
  const CSS_STYLES__RULE_USE_OPTIONS__WEBPACK_CONFIG_CHUNK = [
32
32
  // resolveHostPackageNodeModulesPath(
33
33
  // '@mainset/bundler-webpack',
@@ -1,4 +1,6 @@
1
1
  import { resolveHostPackageNodeModulesPath } from '@mainset/cli/runtime';
2
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
3
+ // @ts-ignore
2
4
  import babelConfig from '../../../babel.config.mjs';
3
5
  const BABEL_LOADER__RULE__WEBPACK_CONFIG_FRAGMENT = {
4
6
  test: /\.(ts|mts|tsx)$/,
@@ -16,4 +18,4 @@ const IMAGES__RULE__WEBPACK_CONFIG_FRAGMENT = {
16
18
  outputPath: 'dist/assets/images',
17
19
  },
18
20
  };
19
- export { IMAGES__RULE__WEBPACK_CONFIG_FRAGMENT, BABEL_LOADER__RULE__WEBPACK_CONFIG_FRAGMENT, };
21
+ export { BABEL_LOADER__RULE__WEBPACK_CONFIG_FRAGMENT, IMAGES__RULE__WEBPACK_CONFIG_FRAGMENT, };
@@ -1,3 +1,4 @@
1
+ var _a;
1
2
  import { runtimePathById } from '@mainset/cli/runtime';
2
3
  import { merge } from '@mainset/toolkit-js';
3
4
  import CopyWebpackPlugin from 'copy-webpack-plugin';
@@ -8,7 +9,7 @@ import { commonWebappWebpackConfigFragment } from './common-webapp.fragment.mjs'
8
9
  const defaultEntry = path.join(runtimePathById.src, 'index.ts');
9
10
  const ssrEntry = path.join(runtimePathById.src, 'index.ssr.ts');
10
11
  const bundlerEntry = fs.existsSync(ssrEntry) ? ssrEntry : defaultEntry;
11
- const ssrPublicOutputPath = path.join(commonWebappWebpackConfigFragment.output.path, 'public');
12
+ const ssrPublicOutputPath = path.join(((_a = commonWebappWebpackConfigFragment.output) === null || _a === void 0 ? void 0 : _a.path) || '', 'public');
12
13
  const ssrWebappWebpackConfigFragment = merge(
13
14
  // NOTE: the Web App config used to compile entry point of {global.css} styles
14
15
  commonWebappWebpackConfigFragment, {
@@ -1,6 +1,12 @@
1
1
  import { runtimePathById } from '@mainset/cli/runtime';
2
2
  import { merge } from '@mainset/toolkit-js';
3
+ import fs from 'fs';
4
+ import path from 'path';
3
5
  import csrWebappEnvBasedConfig from './webapp.csr.config.mjs';
6
+ const proxyConfigPath = path.join(runtimePathById.config, 'proxy.config.mjs');
7
+ const proxyConfigByPath = fs.existsSync(proxyConfigPath)
8
+ ? (await import(proxyConfigPath)).default
9
+ : {};
4
10
  const csrDevServerWebappEnvBasedConfig = merge(csrWebappEnvBasedConfig, {
5
11
  devtool: 'inline-source-map',
6
12
  devServer: {
@@ -10,6 +16,7 @@ const csrDevServerWebappEnvBasedConfig = merge(csrWebappEnvBasedConfig, {
10
16
  },
11
17
  historyApiFallback: true,
12
18
  hot: true,
19
+ proxy: Object.values(proxyConfigByPath),
13
20
  },
14
21
  });
15
22
  export default csrDevServerWebappEnvBasedConfig;
@@ -12,7 +12,7 @@ const ssrServerCommonWebpackConfigFragment = {
12
12
  // SSR server dedicated config
13
13
  target: 'node',
14
14
  entry: {
15
- 'ssr-server.config': path.join(runtimePathById.root, 'config', 'ssr-server.config.mts'),
15
+ 'ssr-server.config': path.join(runtimePathById.config, 'ssr-server.config.mts'),
16
16
  },
17
17
  output: {
18
18
  path: path.join(runtimePathById.dist, 'private'),
@@ -43,7 +43,7 @@ const ssrServerCommonWebpackConfigFragment = {
43
43
  ],
44
44
  },
45
45
  };
46
- const generateSSRCssStylesRuleWebpackConfigFragment = ({ mode }) => {
46
+ const generateSSRCssStylesRuleWebpackConfigFragment = ({ mode, }) => {
47
47
  const CSS_LOADER__RULE_USE_OPTIONS__BY_MODE = {
48
48
  [NODE_ENV.PRODUCTION]: CSS_LOADER__PROD_RULE_USE_OPTIONS__WEBPACK_CONFIG_CHUNK,
49
49
  [NODE_ENV.DEVELOPMENT]: CSS_LOADER__DEV_RULE_USE_OPTIONS__WEBPACK_CONFIG_CHUNK,
@@ -101,4 +101,5 @@ const ssrServerEnvBasedConfig = {
101
101
  [NODE_ENV.PRODUCTION]: merge(ssrServerProdWebpackConfigFragment, ssrServerCommonWebpackConfigFragment),
102
102
  [NODE_ENV.DEVELOPMENT]: merge(ssrServerDevWebpackConfigFragment, ssrServerCommonWebpackConfigFragment),
103
103
  };
104
+ // NOTE: the {NODE_ENV} handled and established in {verifyOrSetNodeEnv} of {ms-cli}
104
105
  export default ssrServerEnvBasedConfig[process.env.NODE_ENV];
@@ -12,8 +12,10 @@ const csrWebappGeneralConfig = merge(csrWebappWebpackConfigFragment, {
12
12
  }),
13
13
  ],
14
14
  });
15
- const csrWebappEnvBasedConfig = {
15
+ const csrWebappConfigByNodeEnv = {
16
16
  [NODE_ENV.PRODUCTION]: merge(prodWebpackConfigFragment, csrWebappGeneralConfig),
17
17
  [NODE_ENV.DEVELOPMENT]: merge(devWebpackConfigFragment, csrWebappGeneralConfig),
18
18
  };
19
- export default csrWebappEnvBasedConfig[process.env.NODE_ENV];
19
+ const csrWebappEnvBasedConfig = csrWebappConfigByNodeEnv[process.env.NODE_ENV];
20
+ // NOTE: the {NODE_ENV} handled and established in {verifyOrSetNodeEnv} of {ms-cli}
21
+ export default csrWebappEnvBasedConfig;
@@ -14,12 +14,16 @@ const ssrWebappGeneralConfig = merge(ssrWebappWebpackConfigFragment, {
14
14
  }),
15
15
  ],
16
16
  });
17
- const ssrWebappEnvBasedConfig = {
17
+ const ssrWebappConfigByNodeEnv = {
18
18
  [NODE_ENV.PRODUCTION]: merge(prodWebpackConfigFragment, ssrWebappGeneralConfig),
19
19
  [NODE_ENV.DEVELOPMENT]: merge(devWebpackConfigFragment, ssrWebappGeneralConfig),
20
20
  };
21
+ // NOTE: the {NODE_ENV} handled and established in {verifyOrSetNodeEnv} of {ms-cli}
22
+ const ssrWebappEnvBasedConfig = ssrWebappConfigByNodeEnv[process.env.NODE_ENV];
23
+ // NOTE: the {tsc} stripping the export in favor of the default export
24
+ export { ssrServerEnvBasedConfig, ssrWebappEnvBasedConfig };
21
25
  export default [
22
26
  ssrServerEnvBasedConfig,
23
27
  // NOTE: all Env Based configs declared outside {config-fragments} folder
24
- ssrWebappEnvBasedConfig[process.env.NODE_ENV],
28
+ ssrWebappEnvBasedConfig,
25
29
  ];
@@ -0,0 +1,4 @@
1
+ import type { Configuration as WebpackConfig } from 'webpack';
2
+ import type { Configuration as DevServerConfig } from 'webpack-dev-server';
3
+ declare const generateEnvBasedWebpackConfig: (extendedWebpackConfig?: WebpackConfig & DevServerConfig) => (WebpackConfig & DevServerConfig) | WebpackConfig[];
4
+ export { generateEnvBasedWebpackConfig };
@@ -1 +1 @@
1
- export {};
1
+ export { generateEnvBasedWebpackConfig } from './generate-webpack-config.mjs';
@@ -0,0 +1,2 @@
1
+ declare const commonWebappWebpackConfigFragment: import("webpack").Configuration;
2
+ export { commonWebappWebpackConfigFragment };
@@ -0,0 +1,3 @@
1
+ import type { Configuration } from 'webpack';
2
+ declare const commonWebpackConfigFragment: Configuration;
3
+ export { commonWebpackConfigFragment };
@@ -0,0 +1,2 @@
1
+ declare const csrWebappWebpackConfigFragment: import("webpack").Configuration;
2
+ export { csrWebappWebpackConfigFragment };
@@ -0,0 +1,3 @@
1
+ import type { Configuration } from 'webpack';
2
+ declare const devWebpackConfigFragment: Configuration;
3
+ export { devWebpackConfigFragment };
@@ -0,0 +1,2 @@
1
+ export * from './module-rules.fragment.mjs';
2
+ export * from './module-rules.chunk.mjs';
@@ -0,0 +1,21 @@
1
+ import type { RuleSetRule } from 'webpack';
2
+ declare const CSS_STYLES__RULE_TEST_REGEX__WEBPACK_CONFIG_CHUNK: {
3
+ test: RegExp;
4
+ };
5
+ declare const CSS_MODULES__RULE_TEST_REGEX__WEBPACK_CONFIG_CHUNK: {
6
+ test: RegExp;
7
+ };
8
+ declare const FONTS__RULE_TEST_REGEX__WEBPACK_CONFIG_CHUNK: {
9
+ test: RegExp;
10
+ };
11
+ declare const CSS_LOADER__PROD_RULE_USE_OPTIONS__WEBPACK_CONFIG_CHUNK: RuleSetRule;
12
+ declare const CSS_LOADER__DEV_RULE_USE_OPTIONS__WEBPACK_CONFIG_CHUNK: RuleSetRule;
13
+ declare const CSS_STYLES__RULE_USE_OPTIONS__WEBPACK_CONFIG_CHUNK: (string | {
14
+ loader: string;
15
+ options: {
16
+ postcssOptions: {
17
+ config: string | false;
18
+ };
19
+ };
20
+ })[];
21
+ export { CSS_LOADER__DEV_RULE_USE_OPTIONS__WEBPACK_CONFIG_CHUNK, CSS_LOADER__PROD_RULE_USE_OPTIONS__WEBPACK_CONFIG_CHUNK, CSS_MODULES__RULE_TEST_REGEX__WEBPACK_CONFIG_CHUNK, CSS_STYLES__RULE_TEST_REGEX__WEBPACK_CONFIG_CHUNK, CSS_STYLES__RULE_USE_OPTIONS__WEBPACK_CONFIG_CHUNK, FONTS__RULE_TEST_REGEX__WEBPACK_CONFIG_CHUNK, };
@@ -0,0 +1,4 @@
1
+ import type { RuleSetRule } from 'webpack';
2
+ declare const BABEL_LOADER__RULE__WEBPACK_CONFIG_FRAGMENT: RuleSetRule;
3
+ declare const IMAGES__RULE__WEBPACK_CONFIG_FRAGMENT: RuleSetRule;
4
+ export { BABEL_LOADER__RULE__WEBPACK_CONFIG_FRAGMENT, IMAGES__RULE__WEBPACK_CONFIG_FRAGMENT, };
@@ -0,0 +1,3 @@
1
+ import type { Configuration } from 'webpack';
2
+ declare const prodWebpackConfigFragment: Configuration;
3
+ export { prodWebpackConfigFragment };
@@ -0,0 +1,2 @@
1
+ declare const ssrWebappWebpackConfigFragment: import("webpack").Configuration;
2
+ export { ssrWebappWebpackConfigFragment };
@@ -0,0 +1,4 @@
1
+ import type { Configuration as WebpackConfig } from 'webpack';
2
+ import type { Configuration as DevServerConfig } from 'webpack-dev-server';
3
+ declare const csrDevServerWebappEnvBasedConfig: WebpackConfig & DevServerConfig;
4
+ export default csrDevServerWebappEnvBasedConfig;
@@ -0,0 +1,3 @@
1
+ import type { Configuration } from 'webpack';
2
+ declare const _default: Configuration;
3
+ export default _default;
@@ -0,0 +1,2 @@
1
+ declare const csrWebappEnvBasedConfig: import("webpack").Configuration;
2
+ export default csrWebappEnvBasedConfig;
@@ -0,0 +1,5 @@
1
+ import ssrServerEnvBasedConfig from './server.ssr.config.mjs';
2
+ declare const ssrWebappEnvBasedConfig: import("webpack").Configuration;
3
+ export { ssrServerEnvBasedConfig, ssrWebappEnvBasedConfig };
4
+ declare const _default: import("webpack").Configuration[];
5
+ export default _default;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mainset/bundler-webpack",
3
- "version": "0.2.1-rc.1",
3
+ "version": "0.3.0-rc.2",
4
4
  "description": "Bundler for web apps",
5
5
  "homepage": "https://github.com/mainset/dev-stack-fe/tree/main/packages/bundler-webpack",
6
6
  "bugs": {
@@ -19,6 +19,10 @@
19
19
  "src/@types"
20
20
  ],
21
21
  "exports": {
22
+ ".": {
23
+ "types": "./dist/types/index.d.mts",
24
+ "import": "./dist/esm/index.mjs"
25
+ },
22
26
  "./global-types": "./src/@types/bundler.d.ts"
23
27
  },
24
28
  "dependencies": {
@@ -45,14 +49,14 @@
45
49
  "webpack-dev-server": "^5.2.2"
46
50
  },
47
51
  "devDependencies": {
48
- "@mainset/toolkit-js": "^0.1.0",
49
- "@mainset/dev-stack-fe": "^0.1.1",
50
- "@mainset/cli": "^0.2.1-rc.1"
52
+ "@mainset/toolkit-js": "^0.1.1-rc.2",
53
+ "@mainset/dev-stack-fe": "^0.2.0-rc.2",
54
+ "@mainset/cli": "^0.3.0-rc.2"
51
55
  },
52
56
  "peerDependencies": {
53
- "@mainset/cli": "^0.2.1",
54
- "@mainset/dev-stack-fe": "^0.1.1",
55
- "@mainset/toolkit-js": "^0.1.0"
57
+ "@mainset/cli": "^0.3.0",
58
+ "@mainset/dev-stack-fe": "^0.2.0",
59
+ "@mainset/toolkit-js": "^0.1.1"
56
60
  },
57
61
  "scripts": {
58
62
  "build": "ms-cli source-code --exec compile",
@@ -0,0 +1 @@
1
+ import '@mainset/cli/process-env-type';