@lipemat/js-boilerplate 10.3.0-beta.1 → 10.3.0-beta.3
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/config/babel.config.js +6 -8
- package/config/postcss.config.js +2 -10
- package/config/webpack.dev.js +2 -1
- package/config/webpack.dist.js +9 -2
- package/helpers/config.js +24 -1
- package/package.json +6 -3
- package/scripts/browserslist.js +2 -5
- package/scripts/dist.js +1 -3
package/config/babel.config.js
CHANGED
|
@@ -1,19 +1,17 @@
|
|
|
1
|
-
const {
|
|
1
|
+
const {getBrowsersList} = require( '../helpers/config' );
|
|
2
2
|
|
|
3
3
|
const presetEnv = {
|
|
4
|
+
bugfixes: true,
|
|
4
5
|
corejs: {
|
|
5
|
-
version: '3.
|
|
6
|
+
version: '3.31',
|
|
6
7
|
},
|
|
7
8
|
shippedProposals: true,
|
|
9
|
+
targets: {
|
|
10
|
+
browsers: getBrowsersList(),
|
|
11
|
+
},
|
|
8
12
|
useBuiltIns: 'usage',
|
|
9
13
|
};
|
|
10
14
|
|
|
11
|
-
/**
|
|
12
|
-
* Use shared browserslist configurations.
|
|
13
|
-
*/
|
|
14
|
-
if ( getDefaultBrowsersList() ) {
|
|
15
|
-
presetEnv.targets = getDefaultBrowsersList();
|
|
16
|
-
}
|
|
17
15
|
|
|
18
16
|
module.exports = {
|
|
19
17
|
cacheDirectory: true,
|
package/config/postcss.config.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
const path = require( 'path' );
|
|
2
2
|
const fs = require( 'fs' );
|
|
3
3
|
const postcssPresetEnv = require( 'postcss-preset-env' );
|
|
4
|
-
const {
|
|
4
|
+
const {getBrowsersList} = require( '../helpers/config' );
|
|
5
5
|
const packageConfig = require( '../helpers/package-config' );
|
|
6
6
|
|
|
7
7
|
const presetEnv = {
|
|
8
|
+
browsers: getBrowsersList(),
|
|
8
9
|
features: {
|
|
9
10
|
/**
|
|
10
11
|
* Fixes `focus-visible` feature for CSS modules (included by preset-env anywhere
|
|
@@ -27,15 +28,6 @@ const presetEnv = {
|
|
|
27
28
|
},
|
|
28
29
|
};
|
|
29
30
|
|
|
30
|
-
/**
|
|
31
|
-
* If browserslist is not specified, we fall back to WordPress defaults.
|
|
32
|
-
*
|
|
33
|
-
* @link https://github.com/csstools/postcss-preset-env#browsers
|
|
34
|
-
*/
|
|
35
|
-
if ( getDefaultBrowsersList() ) {
|
|
36
|
-
presetEnv.browsers = getDefaultBrowsersList();
|
|
37
|
-
}
|
|
38
|
-
|
|
39
31
|
/**
|
|
40
32
|
* If a media-queries files exist, automatically load them.
|
|
41
33
|
*
|
package/config/webpack.dev.js
CHANGED
|
@@ -4,7 +4,7 @@ const path = require( 'path' );
|
|
|
4
4
|
const ForkTsCheckerWebpackPlugin = require( 'fork-ts-checker-webpack-plugin' );
|
|
5
5
|
const config = require( '../helpers/package-config' );
|
|
6
6
|
const {getEntries} = require( '../helpers/entries' );
|
|
7
|
-
const {getConfig, getTsConfigFile} = require( '../helpers/config' );
|
|
7
|
+
const {getConfig, getTsConfigFile, getBrowsersList} = require( '../helpers/config' );
|
|
8
8
|
|
|
9
9
|
const postcssOptions = getConfig( 'postcss.config.js' );
|
|
10
10
|
const babelOptions = getConfig( 'babel.config.js' );
|
|
@@ -44,6 +44,7 @@ module.exports = {
|
|
|
44
44
|
externals: {
|
|
45
45
|
jquery: 'jQuery',
|
|
46
46
|
},
|
|
47
|
+
target: 'browserslist:' + getBrowsersList().join( ', ' ),
|
|
47
48
|
output: {
|
|
48
49
|
path: path.resolve( config.workingDirectory, 'dist' ),
|
|
49
50
|
filename: '[name].js',
|
package/config/webpack.dist.js
CHANGED
|
@@ -5,9 +5,10 @@ const MiniCssExtractPlugin = require( 'mini-css-extract-plugin' );
|
|
|
5
5
|
const {CleanWebpackPlugin} = require( 'clean-webpack-plugin' );
|
|
6
6
|
const WebpackAssetsManifest = require( 'webpack-assets-manifest' );
|
|
7
7
|
const {SubresourceIntegrityPlugin} = require( 'webpack-subresource-integrity' );
|
|
8
|
+
const ForkTsCheckerWebpackPlugin = require( 'fork-ts-checker-webpack-plugin' );
|
|
8
9
|
|
|
9
10
|
const WebpackAssetsHash = require( '../helpers/WebpackAssetsHash' );
|
|
10
|
-
const {getConfig} = require( '../helpers/config' );
|
|
11
|
+
const {getConfig, getTsConfigFile, getBrowsersList} = require( '../helpers/config' );
|
|
11
12
|
const moduleHelpers = require( '../helpers/modules' );
|
|
12
13
|
const config = require( '../helpers/package-config' );
|
|
13
14
|
const {getEntries} = require( '../helpers/entries' );
|
|
@@ -35,6 +36,12 @@ const plugins = [
|
|
|
35
36
|
// Remove all files except the `.running` file created by "Start".
|
|
36
37
|
cleanOnceBeforeBuildPatterns: [ '**/*', '!.running' ],
|
|
37
38
|
} ),
|
|
39
|
+
new ForkTsCheckerWebpackPlugin( {
|
|
40
|
+
formatter: 'basic',
|
|
41
|
+
typescript: {
|
|
42
|
+
configFile: getTsConfigFile(),
|
|
43
|
+
},
|
|
44
|
+
} ),
|
|
38
45
|
new SubresourceIntegrityPlugin( {
|
|
39
46
|
hashFuncNames: [ 'sha384' ],
|
|
40
47
|
} ),
|
|
@@ -89,7 +96,7 @@ module.exports = {
|
|
|
89
96
|
externals: {
|
|
90
97
|
jquery: 'jQuery',
|
|
91
98
|
},
|
|
92
|
-
target:
|
|
99
|
+
target: 'browserslist:' + getBrowsersList().join( ', ' ),
|
|
93
100
|
output: {
|
|
94
101
|
path: path.resolve( config.workingDirectory, 'dist' ),
|
|
95
102
|
filename: '[name].js',
|
package/helpers/config.js
CHANGED
|
@@ -132,12 +132,34 @@ function getTsConfigFile() {
|
|
|
132
132
|
return tsConfig;
|
|
133
133
|
}
|
|
134
134
|
|
|
135
|
+
/**
|
|
136
|
+
* Get the browserslist from the current project.
|
|
137
|
+
*
|
|
138
|
+
* - If specified using standard browserslist config, we will use that.
|
|
139
|
+
* - Fallback to WordPress defaults except for "> 1%".
|
|
140
|
+
*/
|
|
141
|
+
function getBrowsersList() {
|
|
142
|
+
const projectBrowsersList = browserslist();
|
|
143
|
+
if ( browserslist( browserslist.defaults ) === projectBrowsersList ) {
|
|
144
|
+
return require( '@wordpress/browserslist-config' ).map( range => {
|
|
145
|
+
// Swap out "> 1%" for "> 2%".
|
|
146
|
+
return '> 1%' === range ? '> 2%' : range;
|
|
147
|
+
} );
|
|
148
|
+
}
|
|
149
|
+
return projectBrowsersList;
|
|
150
|
+
}
|
|
135
151
|
|
|
136
152
|
/**
|
|
137
153
|
* If browserslist is not specified, we fall back to WordPress defaults
|
|
138
154
|
* except for > 1% we don't support by default.
|
|
139
155
|
*
|
|
140
|
-
* Return
|
|
156
|
+
* - Return the default browserslist if the current project does not specify one.
|
|
157
|
+
* - Return false if a browserslist is specified, or JEST is running.
|
|
158
|
+
*
|
|
159
|
+
* Used in cases where we can fall back to standard browserslist config if the project
|
|
160
|
+
* has not specified one.
|
|
161
|
+
*
|
|
162
|
+
* @deprecated Use getBrowsersList instead.
|
|
141
163
|
*
|
|
142
164
|
* @link https://github.com/browserslist/browserslist#config-file
|
|
143
165
|
*
|
|
@@ -160,6 +182,7 @@ const getDefaultBrowsersList = once( () => {
|
|
|
160
182
|
|
|
161
183
|
|
|
162
184
|
module.exports = {
|
|
185
|
+
getBrowsersList,
|
|
163
186
|
getConfig,
|
|
164
187
|
getDefaultBrowsersList,
|
|
165
188
|
getExtensionsConfig,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lipemat/js-boilerplate",
|
|
3
|
-
"version": "10.3.0-beta.
|
|
3
|
+
"version": "10.3.0-beta.3",
|
|
4
4
|
"description": "Dependencies and scripts for a no config JavaScript app",
|
|
5
5
|
"author": "Mat Lipe",
|
|
6
6
|
"license": "MIT",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"@babel/core": "^7.4.3",
|
|
40
40
|
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
|
|
41
41
|
"@babel/plugin-transform-react-jsx-source": "^7.12.1",
|
|
42
|
-
"@babel/preset-env": "^7.
|
|
42
|
+
"@babel/preset-env": "^7.22.9",
|
|
43
43
|
"@babel/preset-react": "^7.12.10",
|
|
44
44
|
"@babel/preset-typescript": "^7.12.7",
|
|
45
45
|
"@lipemat/css-mqpacker": "^9.0.0",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"clean-css": "^5.3.0",
|
|
54
54
|
"clean-webpack-plugin": "^4.0.0",
|
|
55
55
|
"compression-webpack-plugin": "^10.0.0",
|
|
56
|
-
"core-js": "^3.
|
|
56
|
+
"core-js": "^3.31.1",
|
|
57
57
|
"cross-spawn": "^6.0.5",
|
|
58
58
|
"css-loader": "6.7.1",
|
|
59
59
|
"fork-ts-checker-webpack-plugin": "^7.2.13",
|
|
@@ -84,5 +84,8 @@
|
|
|
84
84
|
"webpack-dev-server": "^4.7.2",
|
|
85
85
|
"webpack-subresource-integrity": "^5.1.0"
|
|
86
86
|
},
|
|
87
|
+
"devDependencies": {
|
|
88
|
+
"@types/jest": "^29.5.3"
|
|
89
|
+
},
|
|
87
90
|
"packageManager": "yarn@3.6.0"
|
|
88
91
|
}
|
package/scripts/browserslist.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
const path = require( 'path' );
|
|
2
1
|
const browserslist = require( 'browserslist' );
|
|
3
|
-
const {
|
|
2
|
+
const {getBrowsersList} = require( '../helpers/config' );
|
|
4
3
|
|
|
5
4
|
const help = `
|
|
6
5
|
List browsers being targeted by Babel and PostCSS.
|
|
@@ -19,9 +18,7 @@ if ( args[ 0 ] && ( '-h' === args[ 0 ] || '--help' === args[ 0 ] ) ) {
|
|
|
19
18
|
}
|
|
20
19
|
|
|
21
20
|
|
|
22
|
-
const provided =
|
|
23
|
-
path: path.resolve( '.' ),
|
|
24
|
-
} );
|
|
21
|
+
const provided = getBrowsersList();
|
|
25
22
|
|
|
26
23
|
console.log( '' );
|
|
27
24
|
console.log( 'JS Provided Browserslist' );
|
package/scripts/dist.js
CHANGED
|
@@ -14,10 +14,8 @@ async function build( config ) {
|
|
|
14
14
|
throw err;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
const info = stats.toJson();
|
|
18
|
-
|
|
19
17
|
if ( stats.hasErrors() ) {
|
|
20
|
-
console.error(
|
|
18
|
+
console.error( stats.toString( config.stats ) );
|
|
21
19
|
process.exit( 1 );
|
|
22
20
|
} else {
|
|
23
21
|
console.log( stats.toString( config.stats ) );
|