@s-ui/bundler 9.28.0 → 9.29.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.28.0",
3
+ "version": "9.29.0",
4
4
  "description": "Config-free bundler for ES6 React apps.",
5
5
  "bin": {
6
6
  "sui-bundler": "./bin/sui-bundler.js"
@@ -0,0 +1,30 @@
1
+ const MiniCssExtractPlugin = require('mini-css-extract-plugin')
2
+
3
+ const {cleanList, config, when} = require('./index')
4
+
5
+ module.exports = {
6
+ test: /(\.css|\.scss)$/,
7
+ use: cleanList([
8
+ MiniCssExtractPlugin.loader,
9
+ require.resolve('css-loader'),
10
+ when(config['externals-manifest'], () => ({
11
+ loader: 'externals-manifest-loader',
12
+ options: {
13
+ manifestURL: config['externals-manifest']
14
+ }
15
+ })),
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
+ },
28
+ require.resolve('@s-ui/sass-loader')
29
+ ])
30
+ }
@@ -1,4 +1,5 @@
1
1
  const webpack = require('webpack')
2
+ const MiniCssExtractPlugin = require('mini-css-extract-plugin')
2
3
  const {
3
4
  cleanList,
4
5
  envVars,
@@ -9,9 +10,12 @@ const path = require('path')
9
10
  const minifyJs = require('./shared/minify-js.js')
10
11
  const definePlugin = require('./shared/define.js')
11
12
  const babelRules = require('./shared/module-rules-babel.js')
13
+ const sassRules = require('./shared/module-rules-sass.js')
12
14
  const {extractComments, sourceMap} = require('./shared/config.js')
13
15
  const {aliasFromConfig} = require('./shared/resolve-alias.js')
14
16
 
17
+ const cssFileName = 'styles.css'
18
+
15
19
  module.exports = {
16
20
  mode: 'production',
17
21
  resolve: {
@@ -48,6 +52,10 @@ module.exports = {
48
52
  new webpack.ProvidePlugin({
49
53
  process: 'process/browser'
50
54
  }),
55
+ new MiniCssExtractPlugin({
56
+ filename: cssFileName,
57
+ chunkFilename: cssFileName
58
+ }),
51
59
  new webpack.optimize.LimitChunkCountPlugin({
52
60
  maxChunks: 1
53
61
  }),
@@ -55,6 +63,6 @@ module.exports = {
55
63
  definePlugin()
56
64
  ]),
57
65
  module: {
58
- rules: [babelRules]
66
+ rules: [babelRules, sassRules]
59
67
  }
60
68
  }
@@ -24,6 +24,7 @@ const {
24
24
  } = require('./shared/config.js')
25
25
  const {resolveLoader} = require('./shared/resolve-loader.js')
26
26
  const babelRules = require('./shared/module-rules-babel.js')
27
+ const sassRules = require('./shared/module-rules-sass.js')
27
28
  const definePlugin = require('./shared/define.js')
28
29
  const manifestLoaderRules = require('./shared/module-rules-manifest-loader.js')
29
30
  const minifyCss = require('./shared/minify-css.js')
@@ -109,32 +110,7 @@ const webpackConfig = {
109
110
  module: {
110
111
  rules: cleanList([
111
112
  babelRules,
112
- {
113
- test: /(\.css|\.scss)$/,
114
- use: cleanList([
115
- MiniCssExtractPlugin.loader,
116
- require.resolve('css-loader'),
117
- when(config['externals-manifest'], () => ({
118
- loader: 'externals-manifest-loader',
119
- options: {
120
- manifestURL: config['externals-manifest']
121
- }
122
- })),
123
- {
124
- loader: require.resolve('postcss-loader'),
125
- options: {
126
- postcssOptions: {
127
- plugins: [
128
- require('autoprefixer')({
129
- overrideBrowserslist: config.targets
130
- })
131
- ]
132
- }
133
- }
134
- },
135
- require.resolve('@s-ui/sass-loader')
136
- ])
137
- },
113
+ sassRules,
138
114
  when(config['externals-manifest'], () =>
139
115
  manifestLoaderRules(config['externals-manifest'])
140
116
  )