mirror of
https://github.com/scratchfoundation/scratch-svg-renderer.git
synced 2025-08-28 22:20:12 -04:00
build!: use scratch-webpack-configuration
This commit is contained in:
parent
5ad1d41a99
commit
607d675df5
3 changed files with 75 additions and 67 deletions
32
package-lock.json
generated
32
package-lock.json
generated
|
@ -31,11 +31,11 @@
|
|||
"husky": "8.0.3",
|
||||
"jsdom": "13.2.0",
|
||||
"json": "9.0.6",
|
||||
"lodash.defaultsdeep": "4.6.1",
|
||||
"mkdirp": "2.1.6",
|
||||
"rimraf": "3.0.2",
|
||||
"scratch-render-fonts": "1.0.20",
|
||||
"scratch-semantic-release-config": "1.0.14",
|
||||
"scratch-webpack-configuration": "1.0.0",
|
||||
"semantic-release": "19.0.5",
|
||||
"tap": "11.1.5",
|
||||
"webpack": "5.90.3",
|
||||
|
@ -10868,12 +10868,6 @@
|
|||
"integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/lodash.defaultsdeep": {
|
||||
"version": "4.6.1",
|
||||
"resolved": "https://registry.npmjs.org/lodash.defaultsdeep/-/lodash.defaultsdeep-4.6.1.tgz",
|
||||
"integrity": "sha512-3j8wdDzYuWO3lM3Reg03MuQR957t287Rpcxp1njpEa8oDrikb+FwGdW3n+FELh/A6qib6yPit0j/pv9G/yeAqA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/lodash.escaperegexp": {
|
||||
"version": "4.1.2",
|
||||
"resolved": "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz",
|
||||
|
@ -19569,6 +19563,21 @@
|
|||
"semantic-release": ">=19.0.2"
|
||||
}
|
||||
},
|
||||
"node_modules/scratch-webpack-configuration": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/scratch-webpack-configuration/-/scratch-webpack-configuration-1.0.0.tgz",
|
||||
"integrity": "sha512-8t3Lda+kOPR/C+0jR1eOmyLO4pjDjT0BAWtmrZ1sXYfCmDhZreOwZMD6127aFYZbCWGK3qn0j2fjSi+unBnG4g==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"lodash.merge": "^4.6.2",
|
||||
"webpack-node-externals": "^3.0.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@babel/preset-env": "^7.24.0",
|
||||
"babel-loader": "^9.1.3",
|
||||
"webpack": "^5.90.3"
|
||||
}
|
||||
},
|
||||
"node_modules/select-hose": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
|
||||
|
@ -22917,6 +22926,15 @@
|
|||
"node": ">=10.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/webpack-node-externals": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-3.0.0.tgz",
|
||||
"integrity": "sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
}
|
||||
},
|
||||
"node_modules/webpack-sources": {
|
||||
"version": "3.2.3",
|
||||
"resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz",
|
||||
|
|
|
@ -46,11 +46,11 @@
|
|||
"husky": "8.0.3",
|
||||
"jsdom": "13.2.0",
|
||||
"json": "9.0.6",
|
||||
"lodash.defaultsdeep": "4.6.1",
|
||||
"mkdirp": "2.1.6",
|
||||
"rimraf": "3.0.2",
|
||||
"scratch-render-fonts": "1.0.20",
|
||||
"scratch-semantic-release-config": "1.0.14",
|
||||
"scratch-webpack-configuration": "1.0.0",
|
||||
"semantic-release": "19.0.5",
|
||||
"tap": "11.1.5",
|
||||
"webpack": "5.90.3",
|
||||
|
@ -58,6 +58,12 @@
|
|||
"webpack-dev-server": "3.11.3",
|
||||
"xmldom": "0.1.31"
|
||||
},
|
||||
"browserslist": [
|
||||
"Chrome >= 63",
|
||||
"Edge >= 15",
|
||||
"Firefox >= 57",
|
||||
"Safari >= 11"
|
||||
],
|
||||
"config": {
|
||||
"commitizen": {
|
||||
"path": "cz-conventional-changelog"
|
||||
|
|
|
@ -1,68 +1,52 @@
|
|||
const CopyWebpackPlugin = require('copy-webpack-plugin');
|
||||
const defaultsDeep = require('lodash.defaultsdeep');
|
||||
const path = require('path');
|
||||
const ScratchWebpackConfigBuilder = require('scratch-webpack-configuration');
|
||||
|
||||
const base = {
|
||||
mode: process.env.NODE_ENV === 'production' ? 'production' : 'development',
|
||||
devServer: {
|
||||
contentBase: false,
|
||||
host: '0.0.0.0',
|
||||
port: process.env.PORT || 8576
|
||||
},
|
||||
devtool: 'cheap-module-source-map',
|
||||
entry: {
|
||||
'scratch-svg-renderer': './src/index.js'
|
||||
},
|
||||
module: {
|
||||
rules: [{
|
||||
include: [
|
||||
path.resolve('src'),
|
||||
path.resolve('node_modules', 'scratch-render-fonts')
|
||||
],
|
||||
test: /\.js$/,
|
||||
loader: 'babel-loader',
|
||||
options: {
|
||||
presets: [['@babel/preset-env', {targets: {}}]]
|
||||
}
|
||||
}]
|
||||
},
|
||||
plugins: []
|
||||
const common = {
|
||||
libraryName: 'ScratchSVGRenderer',
|
||||
rootPath: path.resolve(__dirname)
|
||||
};
|
||||
|
||||
module.exports = [
|
||||
defaultsDeep({}, base, {
|
||||
target: 'web',
|
||||
/**
|
||||
* @type {import('webpack').Configuration}
|
||||
*/
|
||||
const nodeConfig = new ScratchWebpackConfigBuilder(common)
|
||||
.setTarget('node')
|
||||
.get();
|
||||
|
||||
/**
|
||||
* @type {import('webpack').Configuration}
|
||||
*/
|
||||
const webConfig = new ScratchWebpackConfigBuilder(common)
|
||||
.setTarget('browserslist')
|
||||
.get();
|
||||
|
||||
/**
|
||||
* @type {import('webpack').Configuration}
|
||||
*/
|
||||
const playgroundConfig = new ScratchWebpackConfigBuilder(common)
|
||||
.setTarget('browserslist')
|
||||
.merge({
|
||||
devServer: {
|
||||
contentBase: false,
|
||||
port: process.env.PORT || 8576
|
||||
},
|
||||
output: {
|
||||
library: 'ScratchSVGRenderer',
|
||||
libraryTarget: 'umd',
|
||||
path: path.resolve('playground'),
|
||||
publicPath: '/',
|
||||
filename: '[name].js'
|
||||
},
|
||||
plugins: base.plugins.concat([
|
||||
new CopyWebpackPlugin([
|
||||
{
|
||||
from: 'src/playground'
|
||||
}
|
||||
])
|
||||
])
|
||||
}),
|
||||
defaultsDeep({}, base, {
|
||||
output: {
|
||||
library: 'ScratchSVGRenderer',
|
||||
libraryTarget: 'umd',
|
||||
path: path.resolve('dist', 'web'),
|
||||
filename: '[name].js'
|
||||
},
|
||||
module: {
|
||||
rules: [{
|
||||
options: {
|
||||
presets: [['env', {targets: {browsers: ['last 3 versions', 'Safari >= 8', 'iOS >= 8']}}]]
|
||||
}
|
||||
}]
|
||||
},
|
||||
optimization: {
|
||||
minimize: process.env.NODE_ENV === 'production'
|
||||
path: path.resolve(__dirname, 'playground'),
|
||||
publicPath: '/'
|
||||
}
|
||||
})
|
||||
.addPlugin(
|
||||
new CopyWebpackPlugin([
|
||||
{
|
||||
from: 'src/playground'
|
||||
}
|
||||
])
|
||||
)
|
||||
.get();
|
||||
|
||||
module.exports = [
|
||||
nodeConfig,
|
||||
webConfig,
|
||||
playgroundConfig
|
||||
];
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue