@zohodesk/react-cli 1.1.25-exp.6 → 1.1.26-exp.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -0
- package/bin/cli.js +0 -1
- package/lib/configs/resolvers.js +4 -0
- package/lib/pluginUtils/getDevPlugins.js +18 -11
- package/lib/pluginUtils/getProdPlugins.js +18 -11
- package/lib/plugins/CssOrderControlPlugin.js +36 -0
- package/lib/schemas/index.js +8 -0
- package/lib/servers/requireLocalOrGlobal.js +5 -2
- package/lib/utils/getOptions.js +0 -1
- package/package.json +2 -2
    
        package/README.md
    CHANGED
    
    | @@ -44,6 +44,32 @@ Now to run app | |
| 44 44 |  | 
| 45 45 | 
             
            # Change Logs
         | 
| 46 46 |  | 
| 47 | 
            +
            # 1.1.26 (06-09-2024)
         | 
| 48 | 
            +
             | 
| 49 | 
            +
            **Features**
         | 
| 50 | 
            +
             | 
| 51 | 
            +
              - Add a new className format that mirrors the class names used in the source code.
         | 
| 52 | 
            +
               ```
         | 
| 53 | 
            +
                app: {
         | 
| 54 | 
            +
                  displayClassName: true
         | 
| 55 | 
            +
                }
         | 
| 56 | 
            +
               ```
         | 
| 57 | 
            +
             | 
| 58 | 
            +
              - option given to disable the HtmlWebpackPlugin.
         | 
| 59 | 
            +
               ```
         | 
| 60 | 
            +
                app: {
         | 
| 61 | 
            +
                  generateHtml: true
         | 
| 62 | 
            +
                }
         | 
| 63 | 
            +
               ``` 
         | 
| 64 | 
            +
              - Control the rendering order of async CSS chunks.
         | 
| 65 | 
            +
              ```
         | 
| 66 | 
            +
                css: {
         | 
| 67 | 
            +
                  enable: true,
         | 
| 68 | 
            +
                  className: <ID of the tag before which all async CSS chunks should be rendered.>
         | 
| 69 | 
            +
                }
         | 
| 70 | 
            +
                ``` 
         | 
| 71 | 
            +
               
         | 
| 72 | 
            +
             | 
| 47 73 | 
             
            # 1.1.25 (12-08-2024) 
         | 
| 48 74 |  | 
| 49 75 | 
             
             - mp3 files support added
         | 
    
        package/bin/cli.js
    CHANGED
    
    | @@ -13,7 +13,6 @@ const [, , option] = process.argv; | |
| 13 13 | 
             
            const args = process.argv.slice(3);
         | 
| 14 14 | 
             
            const appPath = process.cwd();
         | 
| 15 15 |  | 
| 16 | 
            -
            console.log(args, option, 'hello')
         | 
| 17 16 | 
             
            const options = getOptions({ start: true, build: true, docs: true }[option]);
         | 
| 18 17 |  | 
| 19 18 | 
             
            function spawnSync(...args) {
         | 
    
        package/lib/configs/resolvers.js
    CHANGED
    
    | @@ -22,10 +22,14 @@ function moduleResolver(options) { | |
| 22 22 | 
             
                disableES5Transpile
         | 
| 23 23 | 
             
              } = options.app;
         | 
| 24 24 | 
             
              const customAlias = options.alias;
         | 
| 25 | 
            +
              console.log(moduleResolvePath);
         | 
| 25 26 | 
             
              let required = moduleResolvePath && (0, _requireLocalOrGlobal.requireLocal)(moduleResolvePath);
         | 
| 27 | 
            +
              console.log(required, 'requirwe');
         | 
| 26 28 |  | 
| 27 29 | 
             
              if (!required) {
         | 
| 30 | 
            +
                console.log('this global');
         | 
| 28 31 | 
             
                required = (0, _requireLocalOrGlobal.requireGlobal)('@zohodesk/client_packages_group');
         | 
| 32 | 
            +
                console.log(required, 'what');
         | 
| 29 33 |  | 
| 30 34 | 
             
                if (required) {
         | 
| 31 35 | 
             
                  (0, _logger.messageLogger)('global `@zohodesk/client_packages_group` package taken as client_packages_group');
         | 
| @@ -19,6 +19,8 @@ var _I18nSplitPlugin = _interopRequireDefault(require("../plugins/I18nSplitPlugi | |
| 19 19 |  | 
| 20 20 | 
             
            var _RequireVariablePublicPlugin = _interopRequireDefault(require("../plugins/RequireVariablePublicPlugin"));
         | 
| 21 21 |  | 
| 22 | 
            +
            var _CssOrderControlPlugin = _interopRequireDefault(require("../plugins/CssOrderControlPlugin"));
         | 
| 23 | 
            +
             | 
| 22 24 | 
             
            var _copyWebpackPlugin = _interopRequireDefault(require("copy-webpack-plugin"));
         | 
| 23 25 |  | 
| 24 26 | 
             
            var _webpack = _interopRequireDefault(require("webpack"));
         | 
| @@ -33,17 +35,19 @@ var _VariableConversionCollector = _interopRequireDefault(require("../plugins/Va | |
| 33 35 |  | 
| 34 36 | 
             
            var _SelectorPlugin = _interopRequireDefault(require("../plugins/SelectorPlugin"));
         | 
| 35 37 |  | 
| 38 | 
            +
            var _configHtmlWebpackPlugins = require("./configHtmlWebpackPlugins");
         | 
| 39 | 
            +
             | 
| 36 40 | 
             
            var _EfcResourceCleanupPlugin = _interopRequireDefault(require("../plugins/EfcResourceCleanupPlugin"));
         | 
| 37 41 |  | 
| 38 42 | 
             
            var _EventsHandlingPlugin = require("../plugins/EventsHandlingPlugin");
         | 
| 39 43 |  | 
| 40 44 | 
             
            function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
         | 
| 41 45 |  | 
| 42 | 
            -
            // import { configHtmlWebpackPlugins } from './configHtmlWebpackPlugins';
         | 
| 43 46 | 
             
            // import { windowsModification } from '../loaderUtils/windowsModification';
         | 
| 44 47 | 
             
            const getDevPlugins = (options, publicPath) => {
         | 
| 45 48 | 
             
              const {
         | 
| 46 49 | 
             
                app: {
         | 
| 50 | 
            +
                  generateHtml,
         | 
| 47 51 | 
             
                  tpFolder,
         | 
| 48 52 | 
             
                  folder,
         | 
| 49 53 | 
             
                  instrumentScript,
         | 
| @@ -73,7 +77,8 @@ const getDevPlugins = (options, publicPath) => { | |
| 73 77 | 
             
                  localeAttr: efcLocaleAttr
         | 
| 74 78 | 
             
                },
         | 
| 75 79 | 
             
                css: {
         | 
| 76 | 
            -
                  enableRTLSplit
         | 
| 80 | 
            +
                  enableRTLSplit,
         | 
| 81 | 
            +
                  cssOrderControler
         | 
| 77 82 | 
             
                },
         | 
| 78 83 | 
             
                i18n,
         | 
| 79 84 | 
             
                unusedFiles,
         | 
| @@ -161,15 +166,16 @@ const getDevPlugins = (options, publicPath) => { | |
| 161 166 | 
             
              pluginsArr.push(new _lodashWebpackPlugin.default({
         | 
| 162 167 | 
             
                collections: true,
         | 
| 163 168 | 
             
                shorthands: true
         | 
| 164 | 
            -
              })); | 
| 165 | 
            -
               | 
| 166 | 
            -
             | 
| 167 | 
            -
             | 
| 168 | 
            -
             | 
| 169 | 
            -
             | 
| 170 | 
            -
             | 
| 171 | 
            -
             | 
| 172 | 
            -
             | 
| 169 | 
            +
              }));
         | 
| 170 | 
            +
              generateHtml && (0, _configHtmlWebpackPlugins.configHtmlWebpackPlugins)(pluginsArr, {
         | 
| 171 | 
            +
                enableChunkHash: false,
         | 
| 172 | 
            +
                folder,
         | 
| 173 | 
            +
                minify: false,
         | 
| 174 | 
            +
                inject,
         | 
| 175 | 
            +
                crossorigin,
         | 
| 176 | 
            +
                hasEFC,
         | 
| 177 | 
            +
                customScriptLoadingStrategey
         | 
| 178 | 
            +
              });
         | 
| 173 179 |  | 
| 174 180 | 
             
              if (hasEFC) {
         | 
| 175 181 | 
             
                pluginsArr.push(new _plugins.EFCPlugin({
         | 
| @@ -194,6 +200,7 @@ const getDevPlugins = (options, publicPath) => { | |
| 194 200 | 
             
                mainChunkName: 'main'
         | 
| 195 201 | 
             
              }));
         | 
| 196 202 | 
             
              instrumentScript && pluginsArr.push(new _plugins.ScriptInstrumentPlugin());
         | 
| 203 | 
            +
              cssOrderControler.enable && pluginsArr.push(new _CssOrderControlPlugin.default(cssOrderControler));
         | 
| 197 204 | 
             
              customAttributes.enable && pluginsArr.push(new _CustomAttributePlugin.CustomAttributePlugin(customAttributes));
         | 
| 198 205 | 
             
              customAttributes.enable && pluginsArr.push(new _EfcResourceCleanupPlugin.default(Object.assign({}, customAttributes, {
         | 
| 199 206 | 
             
                globalCacheObj: context
         | 
| @@ -35,19 +35,23 @@ var _CustomAttributePlugin = require("../plugins/CustomAttributePlugin"); | |
| 35 35 |  | 
| 36 36 | 
             
            var _RtlCssPlugin = require("../plugins/RtlSplitPlugin/RtlCssPlugin");
         | 
| 37 37 |  | 
| 38 | 
            +
            var _CssOrderControlPlugin = _interopRequireDefault(require("../plugins/CssOrderControlPlugin"));
         | 
| 39 | 
            +
             | 
| 40 | 
            +
            var _configHtmlWebpackPlugins = require("./configHtmlWebpackPlugins");
         | 
| 41 | 
            +
             | 
| 38 42 | 
             
            var _StatsPlugin = _interopRequireDefault(require("../plugins/StatsPlugin"));
         | 
| 39 43 |  | 
| 40 44 | 
             
            var _EfcResourceCleanupPlugin = _interopRequireDefault(require("../plugins/EfcResourceCleanupPlugin"));
         | 
| 41 45 |  | 
| 42 46 | 
             
            function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
         | 
| 43 47 |  | 
| 44 | 
            -
            // import { configHtmlWebpackPlugins } from './configHtmlWebpackPlugins';
         | 
| 45 48 | 
             
            // eslint-disable-next-line no-unused-vars
         | 
| 46 49 | 
             
            const getProdPlugins = (options, publicPath = '') => {
         | 
| 47 50 | 
             
              let {
         | 
| 48 51 | 
             
                enableChunkHash
         | 
| 49 52 | 
             
              } = options.app;
         | 
| 50 53 | 
             
              const {
         | 
| 54 | 
            +
                generateHtml,
         | 
| 51 55 | 
             
                manifestFileName,
         | 
| 52 56 | 
             
                bundleAnalyze,
         | 
| 53 57 | 
             
                optimize,
         | 
| @@ -86,7 +90,8 @@ const getProdPlugins = (options, publicPath = '') => { | |
| 86 90 | 
             
                i18n
         | 
| 87 91 | 
             
              } = options;
         | 
| 88 92 | 
             
              const {
         | 
| 89 | 
            -
                enableRTLSplit
         | 
| 93 | 
            +
                enableRTLSplit,
         | 
| 94 | 
            +
                cssOrderControler
         | 
| 90 95 | 
             
              } = options.css;
         | 
| 91 96 | 
             
              const {
         | 
| 92 97 | 
             
                hasEFC: newOptionForEnableEFC,
         | 
| @@ -172,15 +177,16 @@ const getProdPlugins = (options, publicPath = '') => { | |
| 172 177 | 
             
                from: `${_path.default.join(process.cwd(), context, tpFolder)}/`,
         | 
| 173 178 | 
             
                to: `./${tpFolder}/`,
         | 
| 174 179 | 
             
                toType: 'dir'
         | 
| 175 | 
            -
              }])); | 
| 176 | 
            -
               | 
| 177 | 
            -
             | 
| 178 | 
            -
             | 
| 179 | 
            -
             | 
| 180 | 
            -
             | 
| 181 | 
            -
             | 
| 182 | 
            -
             | 
| 183 | 
            -
             | 
| 180 | 
            +
              }]));
         | 
| 181 | 
            +
              generateHtml && (0, _configHtmlWebpackPlugins.configHtmlWebpackPlugins)(pluginsArr, {
         | 
| 182 | 
            +
                enableChunkHash,
         | 
| 183 | 
            +
                folder,
         | 
| 184 | 
            +
                inject,
         | 
| 185 | 
            +
                minify: minifyHtmlOptions,
         | 
| 186 | 
            +
                customScriptLoadingStrategey,
         | 
| 187 | 
            +
                crossorigin,
         | 
| 188 | 
            +
                hasEFC
         | 
| 189 | 
            +
              });
         | 
| 184 190 |  | 
| 185 191 | 
             
              if (hasEFC) {
         | 
| 186 192 | 
             
                pluginsArr.push(new _plugins.EFCPlugin({
         | 
| @@ -299,6 +305,7 @@ const getProdPlugins = (options, publicPath = '') => { | |
| 299 305 | 
             
              } // plugins.push(new VariableConversionCollector({}));
         | 
| 300 306 |  | 
| 301 307 |  | 
| 308 | 
            +
              cssOrderControler.enable && pluginsArr.push(new _CssOrderControlPlugin.default(cssOrderControler));
         | 
| 302 309 | 
             
              customAttributes.enable && pluginsArr.push(new _CustomAttributePlugin.CustomAttributePlugin(customAttributes));
         | 
| 303 310 | 
             
              customAttributes.enable && pluginsArr.push(new _EfcResourceCleanupPlugin.default(Object.assign({}, customAttributes, {
         | 
| 304 311 | 
             
                globalCacheObj: context
         | 
| @@ -0,0 +1,36 @@ | |
| 1 | 
            +
            "use strict";
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            Object.defineProperty(exports, "__esModule", {
         | 
| 4 | 
            +
              value: true
         | 
| 5 | 
            +
            });
         | 
| 6 | 
            +
            exports.default = void 0;
         | 
| 7 | 
            +
             | 
| 8 | 
            +
            class CssOrderControlPlugin {
         | 
| 9 | 
            +
              constructor(options) {
         | 
| 10 | 
            +
                this.options = {
         | 
| 11 | 
            +
                  className: options.className
         | 
| 12 | 
            +
                };
         | 
| 13 | 
            +
              }
         | 
| 14 | 
            +
             | 
| 15 | 
            +
              apply(compiler) {
         | 
| 16 | 
            +
                // NOTE: we not using this, Reason currently this option is only need for EFC,
         | 
| 17 | 
            +
                // So it do not needed.
         | 
| 18 | 
            +
                const className = this.options.className;
         | 
| 19 | 
            +
                compiler.hooks.thisCompilation.tap({
         | 
| 20 | 
            +
                  name: 'CssOrderControlPlugin',
         | 
| 21 | 
            +
                  stage: 1,
         | 
| 22 | 
            +
                  fn: compilation => {
         | 
| 23 | 
            +
                    compilation.mainTemplate.hooks.requireEnsure.tap('CssOrderControlPlugin', source => {
         | 
| 24 | 
            +
                      // const str = attributeSetTemplate(cssAttributes, 'linkTag');
         | 
| 25 | 
            +
                      const replacedStr = source.replace('head.appendChild(linkTag);', `var referenceTag = document.getElementById('${className}');
         | 
| 26 | 
            +
                               head.insertBefore(linkTag, referenceTag);`); //   console.log({ s: source, r: replacedStr });
         | 
| 27 | 
            +
             | 
| 28 | 
            +
                      return replacedStr;
         | 
| 29 | 
            +
                    });
         | 
| 30 | 
            +
                  }
         | 
| 31 | 
            +
                });
         | 
| 32 | 
            +
              }
         | 
| 33 | 
            +
             | 
| 34 | 
            +
            }
         | 
| 35 | 
            +
             | 
| 36 | 
            +
            exports.default = CssOrderControlPlugin;
         | 
    
        package/lib/schemas/index.js
    CHANGED
    
    | @@ -52,6 +52,10 @@ var _default = { | |
| 52 52 | 
             
                propertiesFolder: null
         | 
| 53 53 | 
             
              },
         | 
| 54 54 | 
             
              css: {
         | 
| 55 | 
            +
                cssOrderControler: {
         | 
| 56 | 
            +
                  enable: false,
         | 
| 57 | 
            +
                  className: 'customCss'
         | 
| 58 | 
            +
                },
         | 
| 55 59 | 
             
                enableRTLSplit: false,
         | 
| 56 60 | 
             
                valueReplacer: null,
         | 
| 57 61 | 
             
                //valueReplacer: [
         | 
| @@ -126,6 +130,10 @@ var _default = { | |
| 126 130 | 
             
                cssDirStatement: null
         | 
| 127 131 | 
             
              },
         | 
| 128 132 | 
             
              app: {
         | 
| 133 | 
            +
                generateHtml: {
         | 
| 134 | 
            +
                  value: true,
         | 
| 135 | 
            +
                  cli: 'generate_html'
         | 
| 136 | 
            +
                },
         | 
| 129 137 | 
             
                displayClassName: {
         | 
| 130 138 | 
             
                  value: false,
         | 
| 131 139 | 
             
                  cli: 'display_class_name'
         | 
| @@ -25,19 +25,22 @@ function requireLocalOrGlobal(moduleName, opts = {}) { | |
| 25 25 | 
             
              const {
         | 
| 26 26 | 
             
                local = true
         | 
| 27 27 | 
             
              } = opts;
         | 
| 28 | 
            -
              const isRelativePath = moduleName[0] === '.'; | 
| 28 | 
            +
              const isRelativePath = moduleName[0] === '.';
         | 
| 29 | 
            +
              console.log(moduleName, 'module name'); // NOTE: if starts with . then it only mean local
         | 
| 29 30 |  | 
| 30 31 | 
             
              if (isRelativePath) {
         | 
| 31 32 | 
             
                global = false;
         | 
| 32 33 | 
             
              }
         | 
| 33 34 |  | 
| 34 35 | 
             
              try {
         | 
| 35 | 
            -
                const paths = [local && process.cwd(), global && globalNodeModules].filter(Boolean); | 
| 36 | 
            +
                const paths = [local && process.cwd(), global && globalNodeModules].filter(Boolean);
         | 
| 37 | 
            +
                console.log('path', process.cwd(), local, global); // x({ paths, globalNodeModules, global, local, opts });
         | 
| 36 38 |  | 
| 37 39 | 
             
                const moduleResolvePath = require.resolve(moduleName, {
         | 
| 38 40 | 
             
                  paths
         | 
| 39 41 | 
             
                });
         | 
| 40 42 |  | 
| 43 | 
            +
                console.log(moduleResolvePath, 'moduleResolvePath');
         | 
| 41 44 | 
             
                return require(moduleResolvePath);
         | 
| 42 45 | 
             
              } catch (error) {
         | 
| 43 46 | 
             
                // NOTE: since we return null we can check out side
         | 
    
        package/lib/utils/getOptions.js
    CHANGED
    
    
    
        package/package.json
    CHANGED
    
    | @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            {
         | 
| 2 2 | 
             
              "name": "@zohodesk/react-cli",
         | 
| 3 | 
            -
              "version": "1.1. | 
| 3 | 
            +
              "version": "1.1.26-exp.1",
         | 
| 4 4 | 
             
              "description": "A CLI tool for build modern web application and libraries",
         | 
| 5 5 | 
             
              "scripts": {
         | 
| 6 6 | 
             
                "init": "node ./lib/utils/init.js",
         | 
| @@ -41,7 +41,7 @@ | |
| 41 41 | 
             
                "@babel/preset-env": "7.11.0",
         | 
| 42 42 | 
             
                "@babel/preset-react": "7.10.4",
         | 
| 43 43 | 
             
                "@babel/runtime": "7.11.2",
         | 
| 44 | 
            -
                "@zohodesk/client_packages_group": "1.0.2",
         | 
| 44 | 
            +
                "@zohodesk/client_packages_group": "1.0.2-exp.4-redux",
         | 
| 45 45 | 
             
                "@zohodesk/eslint-plugin-react-performance": "1.0.3",
         | 
| 46 46 | 
             
                "@zohodesk/eslint-plugin-zsecurity": "0.0.1-beta.4",
         | 
| 47 47 | 
             
                "@zohodesk/postcss-rtl": "1.5.2",
         |