standardnotes-app/packages/web/web.webpack.dev.js

44 lines
1.6 KiB
JavaScript

const { merge } = require('webpack-merge')
const config = require('./web.webpack.config.js')
const mergeWithEnvDefaults = require('./web.webpack-defaults.js')
const ReactRefreshWebpackPlugin = require('@pmmmwh/react-refresh-webpack-plugin')
module.exports = (env, argv) => {
const port = argv.port || 3001
mergeWithEnvDefaults(env)
return merge(config(env, argv), {
mode: 'development',
devtool: process.env.BUILD_TARGET === 'extension' ? 'cheap-module-source-map' : 'inline-source-map',
optimization: {
minimize: false,
},
output: {
publicPath: '/',
},
plugins: [new ReactRefreshWebpackPlugin()],
devServer: {
headers: {
'Access-Control-Allow-Origin': '*',
'Content-Security-Policy':
"default-src https: 'self'; base-uri 'self'; child-src * blob:; connect-src * blob:; font-src * data:; form-action 'self'; frame-ancestors * file:; frame-src * blob:; img-src 'self' * data: blob:; manifest-src 'self'; media-src 'self' blob: *.standardnotes.com; object-src 'self' blob: *.standardnotes.com; script-src 'self' 'sha256-r26E+iPOhx7KM7cKn4trOSoD8u5E7wL7wwJ8UrR+rGs=' 'unsafe-eval' 'wasm-unsafe-eval'; style-src *;",
},
hot: true,
static: './dist',
port,
historyApiFallback: true,
devMiddleware: {
writeToDisk: argv.writeToDisk,
},
proxy: {
'/assets': {
target: 'https://assets.standardnotes.com',
changeOrigin: true,
secure: false,
pathRewrite: {
'^/assets': '',
},
},
},
},
})
}