PromucFlow_constructor/app/client/craco.common.config.js
Satish Gandham 83538ad74d
feat: Bundle optimization and first load improvements (#21667)
Co-authored-by: Ivan Akulov <mail@iamakulov.com>
Co-authored-by: Satish Gandham <hello@satishgandham.com>
Co-authored-by: Ivan Akulov <iamakulov@outlook.com>
Co-authored-by: Aishwarya UR <aishwarya@appsmith.com>
Co-authored-by: Shrikant Sharat Kandula <shrikant@appsmith.com>
Co-authored-by: somangshu <somangshu.goswami1508@gmail.com>
2023-05-11 10:56:03 +05:30

108 lines
2.7 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

const CracoAlias = require("craco-alias");
const CracoBabelLoader = require("craco-babel-loader");
const path = require("path");
const webpack = require("webpack");
module.exports = {
devServer: {
client: {
webSocketURL: {
hostname: "127.0.0.1",
pathname: "/ws",
port: 3000,
protocol: "ws",
},
},
},
babel: {
plugins: ["babel-plugin-lodash"],
},
webpack: {
configure: {
resolve: {
alias: {
"lodash-es": "lodash",
},
fallback: {
assert: false,
stream: false,
util: false,
fs: false,
os: false,
path: false,
},
},
module: {
rules: [
{
test: /\.m?js/,
resolve: { fullySpecified: false },
},
],
},
ignoreWarnings: [
function ignoreSourcemapsloaderWarnings(warning) {
return (
warning.module &&
warning.module.resource.includes("node_modules") &&
warning.details &&
warning.details.includes("source-map-loader")
);
},
],
plugins: [
// Replace BlueprintJSs icon component with our own implementation
// that code-splits icons away
new webpack.NormalModuleReplacementPlugin(
/@blueprintjs\/core\/lib\/\w+\/components\/icon\/icon\.\w+/,
require.resolve(
"./src/components/designSystems/blueprintjs/icon/index.js",
),
),
],
},
},
plugins: [
{
plugin: CracoAlias,
options: {
source: "tsconfig",
// baseUrl SHOULD be specified
// plugin does not take it from tsconfig
baseUrl: "./src",
// tsConfigPath should point to the file where "baseUrl" and "paths" are specified
tsConfigPath: "./tsconfig.path.json",
},
},
{
plugin: CracoBabelLoader,
options: {
includes: [path.resolve("packages")],
},
},
{
plugin: "prismjs",
options: {
languages: ["javascript"],
plugins: [],
theme: "twilight",
css: false,
},
},
{
// Prioritize the local src directory over node_modules.
// This matters for cases where `src/<dirname>` and `node_modules/<dirname>` both exist
// e.g., when `<dirname>` is `entities`: https://github.com/appsmithorg/appsmith/pull/20964#discussion_r1124782356
plugin: {
overrideWebpackConfig: ({ webpackConfig }) => {
webpackConfig.resolve.modules = [
path.resolve(__dirname, "src"),
...webpackConfig.resolve.modules,
];
return webpackConfig;
},
},
},
],
};