chore: Bundle Stats / Webpack v4 (#1448)
* chore: Experiment with bundle size monitoring service * chore: Ensure build runs on CI, move lint and flow before test * chore: Upgrade Webpack v3 -> v4 * chore: Add webpack-cli Remove unused dep Move deps to dev * Move babel deps to production * Move babel deps to production
This commit is contained in:
parent
0f41a04e49
commit
11f7e3a060
|
@ -29,12 +29,15 @@ jobs:
|
||||||
- run:
|
- run:
|
||||||
name: migrate
|
name: migrate
|
||||||
command: ./node_modules/.bin/sequelize db:migrate --url $DATABASE_URL_TEST
|
command: ./node_modules/.bin/sequelize db:migrate --url $DATABASE_URL_TEST
|
||||||
- run:
|
|
||||||
name: test
|
|
||||||
command: yarn test
|
|
||||||
- run:
|
- run:
|
||||||
name: lint
|
name: lint
|
||||||
command: yarn lint
|
command: yarn lint
|
||||||
- run:
|
- run:
|
||||||
name: flow
|
name: flow
|
||||||
command: yarn flow check --max-workers 4
|
command: yarn flow check --max-workers 4
|
||||||
|
- run:
|
||||||
|
name: test
|
||||||
|
command: yarn test
|
||||||
|
- run:
|
||||||
|
name: build
|
||||||
|
command: yarn build
|
|
@ -1,119 +0,0 @@
|
||||||
// flow-typed signature: d828559e8abc3863ee0f8ef88f5b646e
|
|
||||||
// flow-typed version: <<STUB>>/identity-obj-proxy_v^3.0.0/flow_v0.104.0
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This is an autogenerated libdef stub for:
|
|
||||||
*
|
|
||||||
* 'identity-obj-proxy'
|
|
||||||
*
|
|
||||||
* Fill this stub out by replacing all the `any` types.
|
|
||||||
*
|
|
||||||
* Once filled out, we encourage you to share your work with the
|
|
||||||
* community by sending a pull request to:
|
|
||||||
* https://github.com/flowtype/flow-typed
|
|
||||||
*/
|
|
||||||
|
|
||||||
declare module 'identity-obj-proxy' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* We include stubs for each file inside this npm package in case you need to
|
|
||||||
* require those files directly. Feel free to delete any files that aren't
|
|
||||||
* needed.
|
|
||||||
*/
|
|
||||||
declare module 'identity-obj-proxy/src/__tests__/import-es6-export-test' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'identity-obj-proxy/src/__tests__/import-es6-import-export-test' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'identity-obj-proxy/src/__tests__/import-es6-import-test' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'identity-obj-proxy/src/__tests__/import-vanilla-test' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'identity-obj-proxy/src/__tests__/index-test' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'identity-obj-proxy/src/__tests__/require-es6-export-test' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'identity-obj-proxy/src/__tests__/require-es6-import-export-test' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'identity-obj-proxy/src/__tests__/require-es6-import-test' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'identity-obj-proxy/src/__tests__/require-vanilla-test' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'identity-obj-proxy/src' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'identity-obj-proxy/src/test-redirections/idObjES6Export' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'identity-obj-proxy/src/test-redirections/idObjES6Import' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'identity-obj-proxy/src/test-redirections/idObjES6ImportExport' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Filename aliases
|
|
||||||
declare module 'identity-obj-proxy/src/__tests__/import-es6-export-test.js' {
|
|
||||||
declare module.exports: $Exports<'identity-obj-proxy/src/__tests__/import-es6-export-test'>;
|
|
||||||
}
|
|
||||||
declare module 'identity-obj-proxy/src/__tests__/import-es6-import-export-test.js' {
|
|
||||||
declare module.exports: $Exports<'identity-obj-proxy/src/__tests__/import-es6-import-export-test'>;
|
|
||||||
}
|
|
||||||
declare module 'identity-obj-proxy/src/__tests__/import-es6-import-test.js' {
|
|
||||||
declare module.exports: $Exports<'identity-obj-proxy/src/__tests__/import-es6-import-test'>;
|
|
||||||
}
|
|
||||||
declare module 'identity-obj-proxy/src/__tests__/import-vanilla-test.js' {
|
|
||||||
declare module.exports: $Exports<'identity-obj-proxy/src/__tests__/import-vanilla-test'>;
|
|
||||||
}
|
|
||||||
declare module 'identity-obj-proxy/src/__tests__/index-test.js' {
|
|
||||||
declare module.exports: $Exports<'identity-obj-proxy/src/__tests__/index-test'>;
|
|
||||||
}
|
|
||||||
declare module 'identity-obj-proxy/src/__tests__/require-es6-export-test.js' {
|
|
||||||
declare module.exports: $Exports<'identity-obj-proxy/src/__tests__/require-es6-export-test'>;
|
|
||||||
}
|
|
||||||
declare module 'identity-obj-proxy/src/__tests__/require-es6-import-export-test.js' {
|
|
||||||
declare module.exports: $Exports<'identity-obj-proxy/src/__tests__/require-es6-import-export-test'>;
|
|
||||||
}
|
|
||||||
declare module 'identity-obj-proxy/src/__tests__/require-es6-import-test.js' {
|
|
||||||
declare module.exports: $Exports<'identity-obj-proxy/src/__tests__/require-es6-import-test'>;
|
|
||||||
}
|
|
||||||
declare module 'identity-obj-proxy/src/__tests__/require-vanilla-test.js' {
|
|
||||||
declare module.exports: $Exports<'identity-obj-proxy/src/__tests__/require-vanilla-test'>;
|
|
||||||
}
|
|
||||||
declare module 'identity-obj-proxy/src/index' {
|
|
||||||
declare module.exports: $Exports<'identity-obj-proxy/src'>;
|
|
||||||
}
|
|
||||||
declare module 'identity-obj-proxy/src/index.js' {
|
|
||||||
declare module.exports: $Exports<'identity-obj-proxy/src'>;
|
|
||||||
}
|
|
||||||
declare module 'identity-obj-proxy/src/test-redirections/idObjES6Export.js' {
|
|
||||||
declare module.exports: $Exports<'identity-obj-proxy/src/test-redirections/idObjES6Export'>;
|
|
||||||
}
|
|
||||||
declare module 'identity-obj-proxy/src/test-redirections/idObjES6Import.js' {
|
|
||||||
declare module.exports: $Exports<'identity-obj-proxy/src/test-redirections/idObjES6Import'>;
|
|
||||||
}
|
|
||||||
declare module 'identity-obj-proxy/src/test-redirections/idObjES6ImportExport.js' {
|
|
||||||
declare module.exports: $Exports<'identity-obj-proxy/src/test-redirections/idObjES6ImportExport'>;
|
|
||||||
}
|
|
|
@ -1,83 +0,0 @@
|
||||||
// flow-typed signature: 90824cfc39ff764d3f06f9f71bdb6ef1
|
|
||||||
// flow-typed version: <<STUB>>/uglifyjs-webpack-plugin_v1.2.5/flow_v0.104.0
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This is an autogenerated libdef stub for:
|
|
||||||
*
|
|
||||||
* 'uglifyjs-webpack-plugin'
|
|
||||||
*
|
|
||||||
* Fill this stub out by replacing all the `any` types.
|
|
||||||
*
|
|
||||||
* Once filled out, we encourage you to share your work with the
|
|
||||||
* community by sending a pull request to:
|
|
||||||
* https://github.com/flowtype/flow-typed
|
|
||||||
*/
|
|
||||||
|
|
||||||
declare module 'uglifyjs-webpack-plugin' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* We include stubs for each file inside this npm package in case you need to
|
|
||||||
* require those files directly. Feel free to delete any files that aren't
|
|
||||||
* needed.
|
|
||||||
*/
|
|
||||||
declare module 'uglifyjs-webpack-plugin/dist/cjs' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'uglifyjs-webpack-plugin/dist' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'uglifyjs-webpack-plugin/dist/uglify' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'uglifyjs-webpack-plugin/dist/uglify/minify' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'uglifyjs-webpack-plugin/dist/uglify/versions' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'uglifyjs-webpack-plugin/dist/uglify/worker' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
declare module 'uglifyjs-webpack-plugin/dist/utils' {
|
|
||||||
declare module.exports: any;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Filename aliases
|
|
||||||
declare module 'uglifyjs-webpack-plugin/dist/cjs.js' {
|
|
||||||
declare module.exports: $Exports<'uglifyjs-webpack-plugin/dist/cjs'>;
|
|
||||||
}
|
|
||||||
declare module 'uglifyjs-webpack-plugin/dist/index' {
|
|
||||||
declare module.exports: $Exports<'uglifyjs-webpack-plugin/dist'>;
|
|
||||||
}
|
|
||||||
declare module 'uglifyjs-webpack-plugin/dist/index.js' {
|
|
||||||
declare module.exports: $Exports<'uglifyjs-webpack-plugin/dist'>;
|
|
||||||
}
|
|
||||||
declare module 'uglifyjs-webpack-plugin/dist/uglify/index' {
|
|
||||||
declare module.exports: $Exports<'uglifyjs-webpack-plugin/dist/uglify'>;
|
|
||||||
}
|
|
||||||
declare module 'uglifyjs-webpack-plugin/dist/uglify/index.js' {
|
|
||||||
declare module.exports: $Exports<'uglifyjs-webpack-plugin/dist/uglify'>;
|
|
||||||
}
|
|
||||||
declare module 'uglifyjs-webpack-plugin/dist/uglify/minify.js' {
|
|
||||||
declare module.exports: $Exports<'uglifyjs-webpack-plugin/dist/uglify/minify'>;
|
|
||||||
}
|
|
||||||
declare module 'uglifyjs-webpack-plugin/dist/uglify/versions.js' {
|
|
||||||
declare module.exports: $Exports<'uglifyjs-webpack-plugin/dist/uglify/versions'>;
|
|
||||||
}
|
|
||||||
declare module 'uglifyjs-webpack-plugin/dist/uglify/worker.js' {
|
|
||||||
declare module.exports: $Exports<'uglifyjs-webpack-plugin/dist/uglify/worker'>;
|
|
||||||
}
|
|
||||||
declare module 'uglifyjs-webpack-plugin/dist/utils/index' {
|
|
||||||
declare module.exports: $Exports<'uglifyjs-webpack-plugin/dist/utils'>;
|
|
||||||
}
|
|
||||||
declare module 'uglifyjs-webpack-plugin/dist/utils/index.js' {
|
|
||||||
declare module.exports: $Exports<'uglifyjs-webpack-plugin/dist/utils'>;
|
|
||||||
}
|
|
38
package.json
38
package.json
|
@ -56,6 +56,13 @@
|
||||||
},
|
},
|
||||||
"browserslist": "> 0.25%, not dead",
|
"browserslist": "> 0.25%, not dead",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@babel/core": "^7.11.1",
|
||||||
|
"@babel/plugin-proposal-decorators": "^7.10.5",
|
||||||
|
"@babel/plugin-transform-destructuring": "^7.10.4",
|
||||||
|
"@babel/plugin-transform-regenerator": "^7.10.4",
|
||||||
|
"@babel/preset-env": "^7.11.0",
|
||||||
|
"@babel/preset-flow": "^7.10.4",
|
||||||
|
"@babel/preset-react": "^7.10.4",
|
||||||
"@babel/polyfill": "^7.10.4",
|
"@babel/polyfill": "^7.10.4",
|
||||||
"@babel/register": "^7.10.5",
|
"@babel/register": "^7.10.5",
|
||||||
"@rehooks/window-scroll-position": "^1.0.1",
|
"@rehooks/window-scroll-position": "^1.0.1",
|
||||||
|
@ -64,6 +71,9 @@
|
||||||
"@tommoor/remove-markdown": "0.3.1",
|
"@tommoor/remove-markdown": "0.3.1",
|
||||||
"autotrack": "^2.4.1",
|
"autotrack": "^2.4.1",
|
||||||
"aws-sdk": "^2.135.0",
|
"aws-sdk": "^2.135.0",
|
||||||
|
"babel-plugin-lodash": "^3.3.4",
|
||||||
|
"babel-plugin-styled-components": "^1.11.1",
|
||||||
|
"babel-plugin-transform-class-properties": "^6.24.1",
|
||||||
"boundless-arrow-key-navigation": "^1.0.4",
|
"boundless-arrow-key-navigation": "^1.0.4",
|
||||||
"boundless-popover": "^1.0.4",
|
"boundless-popover": "^1.0.4",
|
||||||
"bull": "^3.5.2",
|
"bull": "^3.5.2",
|
||||||
|
@ -80,7 +90,6 @@
|
||||||
"flow-typed": "^2.6.2",
|
"flow-typed": "^2.6.2",
|
||||||
"fs-extra": "^4.0.2",
|
"fs-extra": "^4.0.2",
|
||||||
"google-auth-library": "^5.5.1",
|
"google-auth-library": "^5.5.1",
|
||||||
"html-webpack-plugin": "3.2.0",
|
|
||||||
"http-errors": "1.4.0",
|
"http-errors": "1.4.0",
|
||||||
"immutable": "^3.8.2",
|
"immutable": "^3.8.2",
|
||||||
"imports-loader": "0.6.5",
|
"imports-loader": "0.6.5",
|
||||||
|
@ -146,27 +155,14 @@
|
||||||
"styled-normalize": "^8.0.4",
|
"styled-normalize": "^8.0.4",
|
||||||
"tiny-cookie": "^2.3.1",
|
"tiny-cookie": "^2.3.1",
|
||||||
"tmp": "0.0.33",
|
"tmp": "0.0.33",
|
||||||
"uglifyjs-webpack-plugin": "1.2.5",
|
|
||||||
"url-loader": "^0.6.2",
|
|
||||||
"uuid": "2.0.2",
|
"uuid": "2.0.2",
|
||||||
"validator": "5.2.0",
|
"validator": "5.2.0"
|
||||||
"webpack": "3.10.0",
|
|
||||||
"webpack-manifest-plugin": "^1.3.2"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "^7.11.1",
|
"@relative-ci/agent": "^1.3.0",
|
||||||
"@babel/plugin-proposal-decorators": "^7.10.5",
|
|
||||||
"@babel/plugin-transform-destructuring": "^7.10.4",
|
|
||||||
"@babel/plugin-transform-regenerator": "^7.10.4",
|
|
||||||
"@babel/preset-env": "^7.11.0",
|
|
||||||
"@babel/preset-flow": "^7.10.4",
|
|
||||||
"@babel/preset-react": "^7.10.4",
|
|
||||||
"babel-eslint": "^10.1.0",
|
"babel-eslint": "^10.1.0",
|
||||||
"babel-jest": "^26.2.2",
|
"babel-jest": "^26.2.2",
|
||||||
"babel-loader": "^8.1.0",
|
"babel-loader": "^8.1.0",
|
||||||
"babel-plugin-lodash": "^3.3.4",
|
|
||||||
"babel-plugin-styled-components": "^1.11.1",
|
|
||||||
"babel-plugin-transform-class-properties": "^6.24.1",
|
|
||||||
"eslint": "^7.6.0",
|
"eslint": "^7.6.0",
|
||||||
"eslint-config-react-app": "3.0.6",
|
"eslint-config-react-app": "3.0.6",
|
||||||
"eslint-plugin-flowtype": "^5.2.0",
|
"eslint-plugin-flowtype": "^5.2.0",
|
||||||
|
@ -176,18 +172,22 @@
|
||||||
"eslint-plugin-react": "^7.20.0",
|
"eslint-plugin-react": "^7.20.0",
|
||||||
"fetch-test-server": "^1.1.0",
|
"fetch-test-server": "^1.1.0",
|
||||||
"flow-bin": "^0.104.0",
|
"flow-bin": "^0.104.0",
|
||||||
"identity-obj-proxy": "^3.0.0",
|
"html-webpack-plugin": "3.2.0",
|
||||||
"jest-cli": "^26.0.0",
|
"jest-cli": "^26.0.0",
|
||||||
"koa-webpack-dev-middleware": "^1.4.5",
|
"koa-webpack-dev-middleware": "^1.4.5",
|
||||||
"koa-webpack-hot-middleware": "^1.0.3",
|
"koa-webpack-hot-middleware": "^1.0.3",
|
||||||
"mobx-react-devtools": "^6.0.3",
|
"mobx-react-devtools": "^6.0.3",
|
||||||
"nodemon": "^1.19.4",
|
"nodemon": "^1.19.4",
|
||||||
"prettier": "^2.0.5",
|
"prettier": "^2.0.5",
|
||||||
"rimraf": "^2.5.4"
|
"rimraf": "^2.5.4",
|
||||||
|
"url-loader": "^0.6.2",
|
||||||
|
"webpack": "4.44.1",
|
||||||
|
"webpack-cli": "^3.3.12",
|
||||||
|
"webpack-manifest-plugin": "^2.2.0"
|
||||||
},
|
},
|
||||||
"resolutions": {
|
"resolutions": {
|
||||||
"dot-prop": "^5.2.0",
|
"dot-prop": "^5.2.0",
|
||||||
"js-yaml": "^3.13.1"
|
"js-yaml": "^3.13.1"
|
||||||
},
|
},
|
||||||
"version": "0.45.0"
|
"version": "0.45.0"
|
||||||
}
|
}
|
|
@ -4,6 +4,7 @@ const commonWebpackConfig = require("./webpack.config");
|
||||||
|
|
||||||
const developmentWebpackConfig = Object.assign(commonWebpackConfig, {
|
const developmentWebpackConfig = Object.assign(commonWebpackConfig, {
|
||||||
cache: true,
|
cache: true,
|
||||||
|
mode: "development",
|
||||||
devtool: "eval-source-map",
|
devtool: "eval-source-map",
|
||||||
entry: [
|
entry: [
|
||||||
"webpack-hot-middleware/client",
|
"webpack-hot-middleware/client",
|
||||||
|
@ -13,10 +14,7 @@ const developmentWebpackConfig = Object.assign(commonWebpackConfig, {
|
||||||
|
|
||||||
developmentWebpackConfig.plugins = [
|
developmentWebpackConfig.plugins = [
|
||||||
...developmentWebpackConfig.plugins,
|
...developmentWebpackConfig.plugins,
|
||||||
new webpack.HotModuleReplacementPlugin(),
|
new webpack.HotModuleReplacementPlugin()
|
||||||
new webpack.DefinePlugin({
|
|
||||||
"process.env.NODE_ENV": JSON.stringify("development"),
|
|
||||||
}),
|
|
||||||
];
|
];
|
||||||
|
|
||||||
module.exports = developmentWebpackConfig;
|
module.exports = developmentWebpackConfig;
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
const webpack = require('webpack');
|
const webpack = require('webpack');
|
||||||
const HtmlWebpackPlugin = require('html-webpack-plugin');
|
const HtmlWebpackPlugin = require('html-webpack-plugin');
|
||||||
|
const { RelativeCiAgentWebpackPlugin } = require('@relative-ci/agent');
|
||||||
|
|
||||||
require('dotenv').config({ silent: true });
|
require('dotenv').config({ silent: true });
|
||||||
|
|
||||||
|
@ -27,7 +28,6 @@ module.exports = {
|
||||||
cacheDirectory: true
|
cacheDirectory: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{ test: /\.json$/, loader: 'json-loader' },
|
|
||||||
// inline base64 URLs for <=8k images, direct URLs for the rest
|
// inline base64 URLs for <=8k images, direct URLs for the rest
|
||||||
{ test: /\.(png|jpg|svg)$/, loader: 'url-loader' },
|
{ test: /\.(png|jpg|svg)$/, loader: 'url-loader' },
|
||||||
{
|
{
|
||||||
|
@ -55,6 +55,7 @@ module.exports = {
|
||||||
new HtmlWebpackPlugin({
|
new HtmlWebpackPlugin({
|
||||||
template: 'server/static/index.html',
|
template: 'server/static/index.html',
|
||||||
}),
|
}),
|
||||||
|
new RelativeCiAgentWebpackPlugin(),
|
||||||
],
|
],
|
||||||
stats: {
|
stats: {
|
||||||
assets: false,
|
assets: false,
|
||||||
|
|
|
@ -1,13 +1,13 @@
|
||||||
/* eslint-disable */
|
/* eslint-disable */
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
const webpack = require('webpack');
|
const webpack = require('webpack');
|
||||||
const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
|
|
||||||
const ManifestPlugin = require('webpack-manifest-plugin');
|
const ManifestPlugin = require('webpack-manifest-plugin');
|
||||||
|
|
||||||
commonWebpackConfig = require('./webpack.config');
|
commonWebpackConfig = require('./webpack.config');
|
||||||
|
|
||||||
productionWebpackConfig = Object.assign(commonWebpackConfig, {
|
productionWebpackConfig = Object.assign(commonWebpackConfig, {
|
||||||
cache: true,
|
cache: true,
|
||||||
|
mode: "production",
|
||||||
devtool: 'source-map',
|
devtool: 'source-map',
|
||||||
entry: ['./app/index'],
|
entry: ['./app/index'],
|
||||||
output: {
|
output: {
|
||||||
|
@ -19,17 +19,7 @@ productionWebpackConfig = Object.assign(commonWebpackConfig, {
|
||||||
});
|
});
|
||||||
productionWebpackConfig.plugins = [
|
productionWebpackConfig.plugins = [
|
||||||
...productionWebpackConfig.plugins,
|
...productionWebpackConfig.plugins,
|
||||||
new ManifestPlugin(),
|
new ManifestPlugin()
|
||||||
new UglifyJsPlugin({
|
|
||||||
sourceMap: true,
|
|
||||||
uglifyOptions: {
|
|
||||||
compress: true,
|
|
||||||
keep_fnames: true
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
new webpack.DefinePlugin({
|
|
||||||
'process.env.NODE_ENV': JSON.stringify('production'),
|
|
||||||
}),
|
|
||||||
];
|
];
|
||||||
|
|
||||||
module.exports = productionWebpackConfig;
|
module.exports = productionWebpackConfig;
|
||||||
|
|
Reference in New Issue