81 lines
2.1 KiB
JavaScript
81 lines
2.1 KiB
JavaScript
require('./src/build/make-worker-loader-always-inline');
|
|
const path = require('path');
|
|
const webpack = require('webpack');
|
|
const HtmlWebpackPlugin = require('html-webpack-plugin');
|
|
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
|
|
|
|
module.exports = {
|
|
mode: process.env.NODE_ENV || 'development',
|
|
devtool: 'source-map',
|
|
output: {
|
|
filename: '[name].js',
|
|
path: path.resolve(__dirname, 'dist')
|
|
},
|
|
entry: {
|
|
scaffolding: './src/scaffolding/export.js',
|
|
addons: './src/addons/index.js',
|
|
packager: './src/packager/index.js'
|
|
},
|
|
resolve: {
|
|
alias: {
|
|
svelte: path.resolve('node_modules', 'svelte'),
|
|
'text-encoding$': 'fastestsmallesttextencoderdecoder',
|
|
'scratch-translate-extension-languages$': path.resolve(__dirname, 'src', 'scaffolding', 'scratch-translate-extension-languages', 'languages.json')
|
|
},
|
|
extensions: ['.mjs', '.js', '.svelte'],
|
|
mainFields: ['svelte', 'browser', 'module', 'main']
|
|
},
|
|
module: {
|
|
rules: [
|
|
{
|
|
test: /\.(mp3|svg|png)$/i,
|
|
use: [
|
|
{
|
|
loader: 'url-loader',
|
|
options: {
|
|
esModule: false
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
test: /\.css$/i,
|
|
use: ['style-loader', {
|
|
loader: 'css-loader',
|
|
options: {
|
|
modules: {
|
|
localIdentName: 'sc-[local]',
|
|
exportLocalsConvention: 'camelCase',
|
|
},
|
|
}
|
|
}],
|
|
},
|
|
{
|
|
test: /\.(html|svelte)$/,
|
|
exclude: /scaffolding/,
|
|
use: 'svelte-loader'
|
|
},
|
|
]
|
|
},
|
|
plugins: [
|
|
new webpack.DefinePlugin({
|
|
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV || 'development'),
|
|
}),
|
|
new HtmlWebpackPlugin({
|
|
filename: 'index.html',
|
|
template: './src/packager/template.ejs',
|
|
chunks: ['packager']
|
|
}),
|
|
new HtmlWebpackPlugin({
|
|
filename: 'example.html',
|
|
template: './src/scaffolding/example.html',
|
|
chunks: []
|
|
}),
|
|
...(process.env.BUNDLE_ANALYZER ? [new BundleAnalyzerPlugin()] : [])
|
|
],
|
|
devServer: {
|
|
contentBase: './dist/',
|
|
host: '0.0.0.0'
|
|
},
|
|
};
|