PromucFlow_constructor/app/client/craco.common.config.js

184 lines
5.2 KiB
JavaScript
Raw Normal View History

const CracoAlias = require("craco-alias");
const CracoBabelLoader = require("craco-babel-loader");
const path = require("path");
const webpack = require("webpack");
2020-06-02 07:54:31 +00:00
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 },
},
{
test: /\.module\.css$/,
use: [
{
loader: "postcss-loader",
options: {
postcssOptions: {
plugins: [
"postcss-nesting",
"postcss-import",
"postcss-at-rules-variables",
"postcss-each",
"postcss-url",
"postcss-modules-values",
[
"cssnano",
{
preset: ["default"],
},
],
],
},
},
},
],
},
],
},
optimization: {
splitChunks: {
cacheGroups: {
icons: {
// This determines which modules are considered icons
test: (module) => {
const modulePath = module.resource;
if (!modulePath) return false;
return (
modulePath.match(/node_modules[\\\/]remixicon-react[\\\/]/) ||
modulePath.endsWith(".svg.js") ||
modulePath.endsWith(".svg")
);
},
// This determines which chunk to put the icon into.
//
// Why have three separate cache groups for three different kinds of
// icons? Purely as an optimization: not every page needs all icons,
// so we can avoid loading unused icons sometimes.
name: (module) => {
if (
module.resource?.match(
/node_modules[\\\/]remixicon-react[\\\/]/,
)
) {
return "remix-icons";
}
if (module.resource?.includes("blueprint")) {
return "blueprint-icons";
}
return "svg-icons";
},
// This specifies that only icons from import()ed chunks should be moved
chunks: "async",
// This makes webpack ignore the minimum chunk size requirement
enforce: true,
},
},
},
},
ignoreWarnings: [
function ignoreSourcemapsloaderWarnings(warning) {
return (
(warning.module?.resource.includes("node_modules") &&
feat: [custom widget] support SCSS syntax (#31042) ## Description - Add support for [ Scss syntax](https://sass-lang.com/documentation/syntax/) in the custom widget builder style tab. - Change the css editor title to style. Since we now support the SCSS syntax as well. #### PR fixes following issue(s) Fixes #28614 #### Media > A video or a GIF is preferred. when using Loom, don’t embed because it looks like it’s a GIF. instead, just link to the video > > #### Type of change - New feature (non-breaking change which adds functionality) > > > ## Testing > #### How Has This Been Tested? > Please describe the tests that you ran to verify your changes. Also list any relevant details for your test configuration. > Delete anything that is not relevant - [x] Manual - [ ] JUnit - [x] Jest - [ ] Cypress > > #### Test Plan > Add Testsmith test cases links that relate to this PR > > #### Issues raised during DP testing > Link issues raised during DP testing for better visiblity and tracking (copy link from comments dropped on this PR) > > > ## Checklist: #### Dev activity - [x] My code follows the style guidelines of this project - [x] I have performed a self-review of my own code - [x] I have commented my code, particularly in hard-to-understand areas - [ ] I have made corresponding changes to the documentation - [x] My changes generate no new warnings - [x] I have added tests that prove my fix is effective or that my feature works - [ ] New and existing unit tests pass locally with my changes - [ ] PR is being merged under a feature flag #### QA activity: - [ ] [Speedbreak features](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#speedbreakers-) have been covered - [ ] Test plan covers all impacted features and [areas of interest](https://github.com/appsmithorg/TestSmith/wiki/Guidelines-for-test-plans#areas-of-interest-) - [ ] Test plan has been peer reviewed by project stakeholders and other QA members - [ ] Manually tested functionality on DP - [ ] We had an implementation alignment call with stakeholders post QA Round 2 - [ ] Cypress test cases have been added and approved by SDET/manual QA - [ ] Added `Test Plan Approved` label after Cypress tests were reviewed - [ ] Added `Test Plan Approved` label after JUnit tests were reviewed <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Added SCSS syntax support and CSS variables usage in tooltips. - Introduced styled components for better styling consistency across the app. - Enhanced the Custom Widget Builder with improved error message styling and tooltip content rendering. - **Bug Fixes** - Refined warning message conditions to reduce unnecessary warnings. - Ensured the `selectedTab` is always valid in the Custom Widget Builder's `TabLayout`. - **Refactor** - Updated function and component names for clarity and consistency (e.g., `CSSEditor` to `StyleEditor`, `getBabelError` to `getError`). - Restructured CSS styles for better layout and presentation in the Custom Widget Builder. - **Chores** - Removed unused CSS class definitions and adjusted existing ones for optimization. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-02-12 11:55:30 +00:00
warning.details?.includes("source-map-loader")) ??
false
);
},
function ignorePackageWarnings(warning) {
return (
warning.module?.resource.includes(
"/node_modules/@babel/standalone/babel.js",
) ||
warning.module?.resource.includes("/node_modules/sass/sass.dart.js")
);
},
],
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",
),
),
],
feat: property pane docking (#7361) * add tailwindcss * docked property pane * uncomment a line * make entity explorer as drawer on unpin * remove unused imports * add pin state in reducer * add menu icon in header * fix widget sidebar * fix widgets sidebar * style property pane * update property pane css * update icons in property pane * update property pane header styles * update spacing * fix few ui issues * wip: preview mode * wip:preview mode * remove unused import * comments sidebar in app and edit mode * fix order of import * use selected state for property pane * update scrollbar style * add classes to sidebar and property pane * make widgets editor fluid * make widgets editor fluid and refactor logic * resize the widgets editor if explorer is pinned * add shortcut for preview mode * fix link for tabs in edit mode * zoom in/zoom out for 0.75 * fix chart widget + table widget crashing * allow zooming of canvas * fix weird canvas draw issue + update container for handling zoom * add actions for is panning * allow panning with grab cursor * reset panning + zooming when entering preview mode * add grabbing cursor when grabbing * only prevent default when space key is pressed * dont allow zoom in preview mode * remove unused imports * fix dont allow zoom in preview mode * fix ux of panning on space hit * make fluid as the default app layout * chart spec * fix dropdown_on change spec * fix add widget table and bind spec * remove draggable property pane spec * fix container spec * fix form widget spec * fix jest test * fix the function typo * remove clicking of close button for property pane in cypress tests * remove property pane actions test * fix drag and drop test failing * add cypress selector id to back button in property pane * fix toggle js spec * fix merge conflicts from new design system * editor header * fix product updates styles + widget card * remove all unused imports * fix dynamic layout spec * fix entity explorer tab rename test failing * fix table spec * fix bind tabletextpagination spec * fix js object spec * fix entity explorer rename issue * fix cypress test * fix cypress command wrong commit * fix tab spec * fix property pane copy tests * add zoom header * zoom levels * make property pane sidebar resizable * add multi select property pane * fix widget search bug * update property pane width in state on drag end * fix viewer header * fix editor header * update editor header + remove zooming * update small style * dont allow closing of explorer when resizing * fix jest test * fix dropdown widget jest test * preview test case wip * add entity explorer pinning tests + preview mode tests * add tooltip in layout control + add padding bottom in property pane view * incorporate aakash feedbacks * fix preview mode margin issue * remove panning code * fix cypress failing test * uncomment jest test * remove redundant code * fix maincontainer test * incorporate review feedbacks * incorporate aakash feedbacks * review feedbacks * incorporate review feedbacks * incorporate qa feedbacks * fix dynamic layout spec * updated test based on latest change * dsl updated * Updated dsl * Updated dsl * resize deselects widget issue. * fix canvas height issue * fix typo * incorporate qa feedbacks * incorporate qa feedbacks * incorporate qa feedbacks * update color for setting control for widget name * fix onboarding styles conflicts * Updated tests * fix application overflow issue * updated test method Co-authored-by: root <root@DESKTOP-9GENCK0.localdomain> Co-authored-by: Pawan Kumar <pawankumar@Pawans-MacBook-Pro.local> Co-authored-by: Ashok Kumar M <35134347+marks0351@users.noreply.github.com> Co-authored-by: Apple <nandan@thinkify.io>
2021-11-23 08:01:46 +00:00
},
},
2020-06-02 07:54:31 +00:00
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")],
},
},
2020-06-02 07:54:31 +00:00
{
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;
},
},
},
2020-06-02 07:54:31 +00:00
],
};