mirror of
https://github.com/status-im/safe-react.git
synced 2026-09-01 22:21:08 +00:00
Included routes, forms, validators, tests and in general everything for making possible create safes, save them, load them and visualize them.
158 lines
4.8 KiB
JavaScript
158 lines
4.8 KiB
JavaScript
/*eslint-disable*/
|
|
const autoprefixer = require('autoprefixer');
|
|
const cssmixins = require('postcss-mixins');
|
|
const cssvars = require('postcss-simple-vars');
|
|
const webpack = require('webpack');
|
|
const HtmlWebPackPlugin = require("html-webpack-plugin");
|
|
|
|
const paths = require('./paths');
|
|
const getClientEnvironment = require('./env');
|
|
|
|
const publicPath = '/';
|
|
|
|
// `publicUrl` we will provide it to our app
|
|
// as %PUBLIC_URL% in `index.html` and `process.env.PUBLIC_URL` in JavaScript.
|
|
// Omit trailing slash as %PUBLIC_PATH%/xyz looks better than %PUBLIC_PATH%xyz.
|
|
var publicUrl = '';
|
|
// Get environment variables to inject into our app.
|
|
var env = getClientEnvironment(publicUrl);
|
|
|
|
const cssvariables = require(paths.appSrc + '/theme/variables');
|
|
|
|
const postcssPlugins = [
|
|
autoprefixer({
|
|
browsers: [
|
|
'>1%',
|
|
'last 4 versions',
|
|
'Firefox ESR',
|
|
'not ie < 9', // React doesn't support IE8 anyway
|
|
]
|
|
}),
|
|
cssmixins,
|
|
cssvars({
|
|
variables: function () {
|
|
return Object.assign({}, cssvariables);
|
|
},
|
|
silent: false
|
|
}),
|
|
];
|
|
|
|
module.exports = {
|
|
devtool: 'eval-source-map',
|
|
mode: 'development',
|
|
entry: [
|
|
"babel-polyfill",
|
|
// Include an alternative client for WebpackDevServer. A client's job is to
|
|
// connect to WebpackDevServer by a socket and get notified about changes.
|
|
// When you save a file, the client will either apply hot updates (in case
|
|
// of CSS changes), or refresh the page (in case of JS changes). When you
|
|
// make a syntax error, this client will display a syntax error overlay.
|
|
// Note: instead of the default WebpackDevServer client, we use a custom one
|
|
// to bring better experience for Create React App users. You can replace
|
|
// the line below with these two lines if you prefer the stock client:
|
|
// require.resolve('webpack-dev-server/client') + '?/',
|
|
// require.resolve('webpack/hot/dev-server'),
|
|
require.resolve('react-dev-utils/webpackHotDevClient'),
|
|
// We ship a few polyfills by default:
|
|
require.resolve('./polyfills'),
|
|
// Finally, this is your app's code:
|
|
paths.appIndexJs
|
|
// We include the app code last so that if there is a runtime error during
|
|
// initialization, it doesn't blow up the WebpackDevServer client, and
|
|
// changing JS code would still trigger a refresh.
|
|
],
|
|
resolve: {
|
|
modules: [
|
|
paths.appSrc,
|
|
'node_modules',
|
|
paths.appContracts,
|
|
],
|
|
// These are the reasonable defaults supported by the Node ecosystem.
|
|
// We also include JSX as a common component filename extension to support
|
|
// some tools, although we do not recommend using it, see:
|
|
// https://github.com/facebookincubator/create-react-app/issues/290
|
|
extensions: ['.js', '.json', '.jsx'],
|
|
alias: {
|
|
'~': paths.appSrc,
|
|
'#': paths.appContracts,
|
|
}
|
|
},
|
|
output: {
|
|
// Next line is not used in dev but WebpackDevServer crashes without it:
|
|
path: paths.appBuild,
|
|
// Add /* filename */ comments to generated require()s in the output.
|
|
pathinfo: true,
|
|
// This does not produce a real file. It's just the virtual path that is
|
|
// served by WebpackDevServer in development. This is the JS bundle
|
|
// containing code from all our entry points, and the Webpack runtime.
|
|
filename: 'static/js/bundle.js',
|
|
// This is the URL that app is served from. We use "/" in development.
|
|
publicPath: publicPath
|
|
},
|
|
module: {
|
|
rules: [
|
|
{
|
|
test: /\.(js|jsx)$/,
|
|
exclude: /node_modules/,
|
|
use: {
|
|
loader: "babel-loader"
|
|
}
|
|
},
|
|
{
|
|
test: /\.(scss|css)$/,
|
|
use: [
|
|
'style-loader',
|
|
{ loader: 'css-loader',
|
|
options: {
|
|
importLoaders: 1,
|
|
modules: true,
|
|
minimize: false,
|
|
localIdentName: '[name]__[local]___[hash:base64:5]',
|
|
}
|
|
},
|
|
{
|
|
loader: 'postcss-loader',
|
|
options: {
|
|
sourceMap: true,
|
|
plugins: postcssPlugins,
|
|
},
|
|
},
|
|
],
|
|
},
|
|
{
|
|
test: /\.html$/,
|
|
use: [
|
|
{
|
|
loader: "html-loader",
|
|
options: { minimize: false }
|
|
}
|
|
]
|
|
},
|
|
{
|
|
test: /\.(jpe?g|png|svg)$/i,
|
|
exclude: /node_modules/,
|
|
use: [{
|
|
loader: "file-loader",
|
|
options: {
|
|
name: 'img/[hash].[ext]'
|
|
}
|
|
}]
|
|
},
|
|
]
|
|
},
|
|
plugins: [
|
|
new HtmlWebPackPlugin({
|
|
template: paths.appHtml,
|
|
}),
|
|
new webpack.DefinePlugin(env),
|
|
new webpack.HotModuleReplacementPlugin(),
|
|
],
|
|
// Some libraries import Node modules but don't use them in the browser.
|
|
// Tell Webpack to provide empty mocks for them so importing them works.
|
|
node: {
|
|
fs: 'empty',
|
|
net: 'empty',
|
|
tls: 'empty'
|
|
}
|
|
};
|