Sticker Creator
This commit is contained in:
parent
2df1ba6e61
commit
11d47a8eb9
123 changed files with 11287 additions and 1714 deletions
90
webpack.config.ts
Normal file
90
webpack.config.ts
Normal file
|
@ -0,0 +1,90 @@
|
|||
import { Configuration, EnvironmentPlugin } from 'webpack';
|
||||
// tslint:disable-next-line no-require-imports
|
||||
import HtmlWebpackPlugin = require('html-webpack-plugin');
|
||||
import { resolve } from 'path';
|
||||
|
||||
const context = __dirname;
|
||||
const { NODE_ENV: mode = 'development' } = process.env;
|
||||
const isDev = mode === 'development';
|
||||
|
||||
const csp = `
|
||||
default-src 'none';
|
||||
child-src 'self';
|
||||
connect-src 'self'${isDev ? ' http: ws:' : ''};
|
||||
font-src 'self';
|
||||
form-action 'self';
|
||||
frame-src 'none';
|
||||
img-src 'self' blob: data:;
|
||||
media-src 'self' blob:;
|
||||
object-src 'none';
|
||||
script-src 'self'${isDev ? " 'unsafe-eval'" : ''};
|
||||
style-src 'self' 'unsafe-inline';
|
||||
`;
|
||||
|
||||
const stickerCreatorConfig: Configuration = {
|
||||
context,
|
||||
mode: mode as Configuration['mode'],
|
||||
devtool: 'source-map',
|
||||
entry: [
|
||||
'react-hot-loader/patch',
|
||||
'sanitize.css',
|
||||
'typeface-inter',
|
||||
'./sticker-creator/index.tsx',
|
||||
],
|
||||
output: {
|
||||
path: resolve(context, 'sticker-creator/dist'),
|
||||
filename: 'bundle.js',
|
||||
publicPath: mode === 'production' ? './' : '/sticker-creator/dist/',
|
||||
},
|
||||
module: {
|
||||
rules: [
|
||||
{
|
||||
test: /\.tsx?$/,
|
||||
loader: 'babel-loader',
|
||||
},
|
||||
{
|
||||
test: /\.css$/,
|
||||
loaders: ['style-loader', 'css-loader'],
|
||||
},
|
||||
{
|
||||
test: /\.scss$/,
|
||||
loaders: [
|
||||
'style-loader',
|
||||
'css-loader?modules=true&localsConvention=camelCaseOnly',
|
||||
'sass-loader',
|
||||
],
|
||||
},
|
||||
{
|
||||
test: /\.woff2?$/,
|
||||
loader: 'file-loader',
|
||||
},
|
||||
],
|
||||
},
|
||||
resolve: {
|
||||
extensions: ['.tsx', '.ts', '.jsx', '.js'],
|
||||
alias: {},
|
||||
},
|
||||
plugins: [
|
||||
new EnvironmentPlugin(['NODE_ENV']),
|
||||
new HtmlWebpackPlugin({
|
||||
title: 'Signal Sticker Creator',
|
||||
template: resolve(context, 'sticker-creator/index.html'),
|
||||
meta: {
|
||||
'Content-Security-Policy': {
|
||||
'http-equiv': 'Content-Security-Policy',
|
||||
content: csp,
|
||||
},
|
||||
},
|
||||
}),
|
||||
],
|
||||
// @ts-ignore: this typing broke at some point
|
||||
devServer: {
|
||||
port: 6380,
|
||||
historyApiFallback: {
|
||||
rewrites: [{ from: /./, to: '/sticker-creator/dist/index.html' }],
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
// tslint:disable-next-line no-default-export
|
||||
export default [stickerCreatorConfig];
|
Loading…
Add table
Add a link
Reference in a new issue