wcm-io-frontend / aem-clientlib-generator

Creates configuration files for AEM ClientLibs and synchronizes assets.
Apache License 2.0
62 stars 33 forks source link

can i have multiple context? #57

Open RoshanTekno opened 1 month ago

RoshanTekno commented 1 month ago

/*~~~~~~~~~~~~~~~~~~ ~ Copyright 2020 Adobe Systems Incorporated ~ ~ Licensed under the Apache License, Version 2.0 (the "License"); ~ you may not use this file except in compliance with the License. ~ You may obtain a copy of the License at ~ ~ http://www.apache.org/licenses/LICENSE-2.0 ~ ~ Unless required by applicable law or agreed to in writing, software ~ distributed under the License is distributed on an "AS IS" BASIS, ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ~ See the License for the specific language governing permissions and ~ limitations under the License.



const path = require("path");

const BUILD_DIR = path.join(__dirname, "dist");
const BUILD_DIR2 = path.join(__dirname, "build");

const CLIENTLIB_DIR = path.join(
  __dirname,
  "..",
  "ui.apps",
  "src",
  "main",
  "content",
  "jcr_root",
  "apps",
  "my-store",
  "clientlibs"
);

const libsBaseConfig = {
  allowProxy: true,
  serializationFormat: "xml",
  cssProcessor: ["default:none", "min:none"],
  jsProcessor: ["default:none", "min:none"],
};

// Config for `aem-clientlib-generator`
module.exports = {
  context: [BUILD_DIR, BUILD_DIR2],
  clientLibRoot: CLIENTLIB_DIR,
  libs: [
    {
      ...libsBaseConfig,
      name: "clientlib-dependencies",
      categories: ["my-store.dependencies"],
      assets: {
        // Copy entrypoint scripts and stylesheets into the respective ClientLib
        // directories
        js: {
          cwd: "clientlib-dependencies",
          files: ["**/*.js"],
          flatten: false,
        },
        css: {
          cwd: "clientlib-dependencies",
          files: ["**/*.css"],
          flatten: false,
        },
      },
    },
    {
      ...libsBaseConfig,
      name: "clientlib-site",
      categories: ["my-store.site"],
      dependencies: ["my-store.dependencies"],
      assets: {
        // Copy entrypoint scripts and stylesheets into the respective ClientLib
        // directories
        js: {
          cwd: "clientlib-site",
          files: ["**/*.js"],
          flatten: false,
        },
        css: {
          cwd: "clientlib-site",
          files: ["**/*.css"],
          flatten: false,
        },

        // Copy all other files into the `resources` ClientLib directory
        resources: {
          cwd: "clientlib-site",
          files: ["**/*.*"],
          flatten: false,
          ignore: ["**/*.js", "**/*.css"],
        },
      },
    },
  ],
};

For example i have these 2 folders one contains aem build and other contains react build i want to generate clientlib for both folders and don't want to mix these two folders with each other.

I just wanted to know if this is achievable?