@s-ui/bundler 9.30.1-beta.0 → 9.32.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@s-ui/bundler",
3
- "version": "9.30.1-beta.0",
3
+ "version": "9.32.0",
4
4
  "description": "Config-free bundler for ES6 React apps.",
5
5
  "bin": {
6
6
  "sui-bundler": "./bin/sui-bundler.js"
@@ -21,25 +21,26 @@
21
21
  },
22
22
  "homepage": "https://github.com/SUI-Components/sui/tree/master/packages/sui-bundler#readme",
23
23
  "dependencies": {
24
- "@babel/core": "7.18.5",
25
- "@parcel/css": "1.11.0",
24
+ "@babel/core": "7.18.9",
26
25
  "@s-ui/helpers": "1",
27
26
  "@s-ui/sass-loader": "1",
28
27
  "address": "1.2.0",
28
+ "autoprefixer": "10.4.7",
29
29
  "babel-loader": "8.2.5",
30
30
  "babel-preset-sui": "3",
31
31
  "buffer": "6.0.3",
32
32
  "commander": "8.3.0",
33
33
  "css-loader": "6.7.1",
34
34
  "css-minimizer-webpack-plugin": "4.0.0",
35
- "esbuild": "0.14.46",
35
+ "esbuild": "0.14.49",
36
36
  "escape-string-regexp": "4.0.0",
37
37
  "fast-glob": "3.2.11",
38
38
  "find-free-ports": "3.0.0",
39
39
  "html-webpack-plugin": "5.5.0",
40
40
  "https-browserify": "1.0.0",
41
41
  "mini-css-extract-plugin": "2.6.1",
42
- "parcel-css-loader": "1.0.7",
42
+ "postcss": "8.4.14",
43
+ "postcss-loader": "7.0.1",
43
44
  "process": "0.11.10",
44
45
  "sass": "1.52.3",
45
46
  "stream-http": "3.2.0",
@@ -47,7 +48,7 @@
47
48
  "style-loader": "3.3.1",
48
49
  "url": "0.11.0",
49
50
  "webpack": "5.73.0",
50
- "webpack-dev-server": "4.9.2",
51
+ "webpack-dev-server": "4.9.3",
51
52
  "webpack-manifest-plugin": "5.0.0",
52
53
  "webpack-node-externals": "3.0.0"
53
54
  }
package/shared/index.js CHANGED
@@ -1,4 +1,4 @@
1
- const {config} = require('./config')
1
+ const {config} = require('./config.js')
2
2
 
3
3
  exports.MAIN_ENTRY_POINT = './app.js'
4
4
  exports.config = config
@@ -1,5 +1,15 @@
1
- const {ParcelCssMinifyPlugin} = require('parcel-css-loader')
1
+ const CssMinimizerPlugin = require('css-minimizer-webpack-plugin')
2
2
 
3
- const createCssMinimizerPlugin = () => new ParcelCssMinifyPlugin()
3
+ const createCssMinimizerPlugin = () =>
4
+ new CssMinimizerPlugin({
5
+ minimizerOptions: {
6
+ preset: [
7
+ 'default',
8
+ {
9
+ discardComments: {removeAll: true}
10
+ }
11
+ ]
12
+ }
13
+ })
4
14
 
5
15
  module.exports = () => createCssMinimizerPlugin()
@@ -1,9 +1,13 @@
1
- const {sep} = require('path')
2
- const {config} = require('./')
1
+ const path = require('path')
2
+ const {config} = require('./index.js')
3
3
 
4
- module.exports = {
4
+ const EXCLUDED_FOLDERS_REGEXP = new RegExp(
5
+ `node_modules(?!${path.sep}@s-ui(${path.sep}studio)(${path.sep}workbench)?${path.sep}src)`
6
+ )
7
+
8
+ module.exports = ({isServer = false, supportLegacyBrowsers = false} = {}) => ({
5
9
  test: /\.jsx?$/,
6
- exclude: new RegExp(`node_modules(?!${sep}@s-ui${sep}studio${sep}src)`),
10
+ exclude: EXCLUDED_FOLDERS_REGEXP,
7
11
  use: [
8
12
  {
9
13
  loader: require.resolve('babel-loader'),
@@ -16,6 +20,8 @@ module.exports = {
16
20
  [
17
21
  require.resolve('babel-preset-sui'),
18
22
  {
23
+ isServer,
24
+ supportLegacyBrowsers,
19
25
  targets: config.targets
20
26
  }
21
27
  ]
@@ -23,4 +29,4 @@ module.exports = {
23
29
  }
24
30
  }
25
31
  ]
26
- }
32
+ })
@@ -1,7 +1,6 @@
1
1
  const MiniCssExtractPlugin = require('mini-css-extract-plugin')
2
- const parcelCSS = require('@parcel/css')
3
2
 
4
- const {cleanList, config, when} = require('./index.js')
3
+ const {cleanList, config, when} = require('./index')
5
4
 
6
5
  module.exports = {
7
6
  test: /(\.css|\.scss)$/,
@@ -14,7 +13,18 @@ module.exports = {
14
13
  manifestURL: config['externals-manifest']
15
14
  }
16
15
  })),
17
- [require.resolve('parcel-css-loader'), {implementation: parcelCSS}],
16
+ {
17
+ loader: require.resolve('postcss-loader'),
18
+ options: {
19
+ postcssOptions: {
20
+ plugins: [
21
+ require('autoprefixer')({
22
+ overrideBrowserslist: config.targets
23
+ })
24
+ ]
25
+ }
26
+ }
27
+ },
18
28
  require.resolve('@s-ui/sass-loader')
19
29
  ])
20
30
  }
@@ -3,7 +3,6 @@
3
3
  const path = require('path')
4
4
  const webpack = require('webpack')
5
5
  const HtmlWebpackPlugin = require('html-webpack-plugin')
6
- const parcelCSS = require('@parcel/css')
7
6
 
8
7
  const {
9
8
  envVars,
@@ -17,10 +16,8 @@ const manifestLoaderRules = require('./shared/module-rules-manifest-loader.js')
17
16
  const {aliasFromConfig, defaultAlias} = require('./shared/resolve-alias.js')
18
17
 
19
18
  const {resolveLoader} = require('./shared/resolve-loader.js')
19
+ const createBabelRules = require('./shared/module-rules-babel.js')
20
20
 
21
- const EXCLUDED_FOLDERS_REGEXP = new RegExp(
22
- `node_modules(?!${path.sep}@s-ui(${path.sep}studio)(${path.sep}workbench)?${path.sep}src)`
23
- )
24
21
  const outputPath = path.join(process.cwd(), 'dist')
25
22
 
26
23
  const {CI = false, PWD = ''} = process.env
@@ -82,20 +79,7 @@ const webpackConfig = {
82
79
  resolveLoader,
83
80
  module: {
84
81
  rules: cleanList([
85
- {
86
- test: /\.jsx?$/,
87
- exclude: EXCLUDED_FOLDERS_REGEXP,
88
- use: [
89
- {
90
- loader: require.resolve('babel-loader'),
91
- options: {
92
- babelrc: false,
93
- cacheDirectory: true,
94
- presets: [require.resolve('babel-preset-sui')]
95
- }
96
- }
97
- ]
98
- },
82
+ createBabelRules(),
99
83
  {
100
84
  test: /(\.css|\.scss)$/,
101
85
  use: cleanList([
@@ -107,7 +91,18 @@ const webpackConfig = {
107
91
  }
108
92
  })),
109
93
  require.resolve('css-loader'),
110
- [require.resolve('parcel-css-loader'), {implementation: parcelCSS}],
94
+ {
95
+ loader: require.resolve('postcss-loader'),
96
+ options: {
97
+ postcssOptions: {
98
+ plugins: [
99
+ require('autoprefixer')({
100
+ overrideBrowserslist: config.targets
101
+ })
102
+ ]
103
+ }
104
+ }
105
+ },
111
106
  require.resolve('@s-ui/sass-loader')
112
107
  ])
113
108
  },
@@ -9,7 +9,7 @@ const {
9
9
  const path = require('path')
10
10
  const minifyJs = require('./shared/minify-js.js')
11
11
  const definePlugin = require('./shared/define.js')
12
- const babelRules = require('./shared/module-rules-babel.js')
12
+ const createBabelRules = require('./shared/module-rules-babel.js')
13
13
  const sassRules = require('./shared/module-rules-sass.js')
14
14
  const {extractComments, sourceMap} = require('./shared/config.js')
15
15
  const {aliasFromConfig} = require('./shared/resolve-alias.js')
@@ -63,6 +63,6 @@ module.exports = {
63
63
  definePlugin()
64
64
  ]),
65
65
  module: {
66
- rules: [babelRules, sassRules]
66
+ rules: [createBabelRules(), sassRules]
67
67
  }
68
68
  }
@@ -23,14 +23,16 @@ const {
23
23
  supportLegacyBrowsers
24
24
  } = require('./shared/config.js')
25
25
  const {resolveLoader} = require('./shared/resolve-loader.js')
26
- const babelRules = require('./shared/module-rules-babel.js')
26
+ const createBabelRules = require('./shared/module-rules-babel.js')
27
27
  const sassRules = require('./shared/module-rules-sass.js')
28
28
  const definePlugin = require('./shared/define.js')
29
29
  const manifestLoaderRules = require('./shared/module-rules-manifest-loader.js')
30
30
  const minifyCss = require('./shared/minify-css.js')
31
31
  const minifyJs = require('./shared/minify-js.js')
32
32
 
33
+ const CWD = process.cwd()
33
34
  const PUBLIC_PATH = process.env.CDN || config.cdn || '/'
35
+ const PWD = process.env.PWD ?? ''
34
36
 
35
37
  const filename = config.onlyHash
36
38
  ? '[contenthash:8].js'
@@ -49,11 +51,11 @@ const webpackConfig = {
49
51
  devtool: sourceMap,
50
52
  mode: 'production',
51
53
  target,
52
- context: path.resolve(process.cwd(), 'src'),
54
+ context: path.resolve(CWD, 'src'),
53
55
  resolve: {
54
56
  alias: {...aliasFromConfig},
55
57
  extensions: ['.js', '.json'],
56
- modules: ['node_modules', path.resolve(process.cwd())],
58
+ modules: ['node_modules', path.resolve(CWD)],
57
59
  fallback: {
58
60
  assert: false,
59
61
  fs: false,
@@ -66,7 +68,7 @@ const webpackConfig = {
66
68
  output: {
67
69
  chunkFilename: filename,
68
70
  filename,
69
- path: path.resolve(process.env.PWD, 'public'),
71
+ path: path.resolve(PWD, 'public'),
70
72
  publicPath: PUBLIC_PATH
71
73
  },
72
74
  optimization: {
@@ -109,7 +111,7 @@ const webpackConfig = {
109
111
  ]),
110
112
  module: {
111
113
  rules: cleanList([
112
- babelRules,
114
+ createBabelRules({supportLegacyBrowsers}),
113
115
  sassRules,
114
116
  when(config['externals-manifest'], () =>
115
117
  manifestLoaderRules(config['externals-manifest'])
@@ -3,7 +3,7 @@ const webpackNodeExternals = require('webpack-node-externals')
3
3
  const path = require('path')
4
4
 
5
5
  const {config, when, cleanList} = require('./shared/index.js')
6
- const babelRules = require('./shared/module-rules-babel.js')
6
+ const createBabelRules = require('./shared/module-rules-babel.js')
7
7
  const manifestLoaderRules = require('./shared/module-rules-manifest-loader.js')
8
8
  const {aliasFromConfig} = require('./shared/resolve-alias.js')
9
9
  const {resolveLoader} = require('./shared/resolve-loader.js')
@@ -39,7 +39,7 @@ const webpackConfig = {
39
39
  resolveLoader,
40
40
  module: {
41
41
  rules: cleanList([
42
- babelRules,
42
+ createBabelRules({isServer: true}),
43
43
  {
44
44
  // ignore css/scss/svg require/imports files in the server
45
45
  test: /(\.svg|\.s?css)$/,