UNPKG

@enact/dev-utils

Version:

A collection of development utilities for Enact apps.

405 lines (276 loc) 17.9 kB
# 7.0.3 (January 13, 2026) * Updated dependencies. # 7.0.2 (November 13, 2025) * Updated dependencies. # 7.0.1 (July 18, 2025) * Updated dependencies. # 7.0.0 (June 10, 2025) * Updated dependencies. ## 7.0.0-rc.1 (May 15, 2025) * `PrerenderPlugin`: Updated locale preset with the 2025 language list. * Removed eslint-related configs in `package.json`. ## 7.0.0-alpha.5 (March 28, 2025) * No significant changes. ## 7.0.0-alpha.4 (February 21, 2025) * Updated `eslint` to v9 and adopted flat config. # 7.0.0-alpha.3 (January 15, 2025) * Updated all dependencies to the latest including React 19. # 7.0.0-alpha.2 (December 6, 2024) * `config-helper`: Added `replaceEntry` function to support multiple entries. * `option-parser`: Added `entry` to support multiple entries. # 7.0.0-alpha.1 (July 22, 2024) * Updated the minimum version of Node to `18.18.0`. # 6.1.0 (February 20, 2024) * `css-module-ident`: Added own hash generate function. * Removed eslint related modules. # 6.0.3 (December 21, 2023) * Updated dependencies. # 6.0.2 (September 27, 2023) * `VerboseLogPlugin`: * Fixed no detailed log outputs when using `enact pack --verbose`. * Added an exception handling for preventing infinite loop. * Updated `prettier` version to `^3.0.1` and `eslint-plugin-prettier` version to `^5.0.0`. # 6.0.1 (July 25, 2023) * Updated `chalk` version to `^5.3.0`. * Updated `find-cache-dir` version to `^4.0.0`. # 6.0.0 (May 18, 2023) * Updated all dependencies to the latest. * Updated the minimum version of Node to `14.15.0` and dropped the support for Node 12 and 17. * Updated `eslint-plugin-react` version to `^7.32.2`. # 5.1.2 (April 6, 2023) * Updated dependencies. # 5.1.1 (February 2, 2023) * Fixed `eslint-plugin-react` version to `7.31.11` temporarily. * Updated dependencies. # 5.1.0 (November 1, 2022) * Unpinned versions of dependencies. * `ILibPlugin`: Fixed to resolve ilib and resources paths properly when `publicPath` is given. * `WebOSMetaPlugin`: Fixed to insert a title into the output HTML. * `PrerenderPlugin`: Fixed wrong ilib path when `locales` option is `all`. # 5.0.2 (September 16, 2022) * Pinned versions of dependencies as same as 5.0.0. # 5.0.1 (August 29, 2022) * `PrerenderPlugin`: Updated locale preset with the latest language list. # 5.0.0 (July 8, 2022) * Updated dependencies. # 5.0.0-rc.1 (June 23, 2022) * `PrerenderPlugin`: Reverted replacement of `ReactDOMClient.hydrateRoot` instead of `ReactDOMClient.createRoot` due to issue. * `SnapshotPlugin`: Fixed `react-redux` not updating state issue by mocking window object while snapshot building. * `css-module-ident`: Added `sass` and `scss` file extension to `fileIdentPattern`. # 5.0.0-alpha.3 (May 31, 2022) * Updated the `lockfileVersion` of npm-shrinkwrap file to v2. * `option-parser`: Added `resolveFallback` to redirect module requests when normal resolving fails. * `externals` and `framework` mixins, `EnactFrameworkRefPlugin`: * Fixed moonstone package is not built as framework. * Fixed moonstone ui test build fail. * Added `react-dom/client` and `react-dom/server` to the default framework bundle. # 5.0.0-alpha.2 (April 28, 2022) * `PrerenderPlugin`: Fixed `hydrateRoot` related error after snapshot build. * Removed `EnzymeAdapterPlugin`. # 5.0.0-alpha.1 (April 11, 2022) * Updated all dependencies, with webpack peer dependency restricted to >=5.0.0. * Updated all webpack plugins to use WeakMap since `compilation.hooks` became frozen. * `IlibPlugin`: * Added `ILIB_ADDITIONAL_RESOURCES_PATH` to defined constants if provided. * Added `publicPath` option to specify webpack public path. * `PrerenderPlugin`: Added React18 support for `ReactDOMClient.hydrateRoot` instead of `ReactDOMClient.createRoot` for prerendered apps. # 4.1.4 (February 18, 2022) * `option-parser`: Added `additionalModulePaths` to specify paths to check when resolving modules. # 4.1.3 (December 2, 2021) * Added `fbjs` module to fix snapshot build failuare. # 4.1.2 (October 12, 2021) * `PrerenderPlugin`: Cleaned up `data-react-checksum` related code. # 4.1.1 (April 23, 2021) * `WebOSMetaPlugin`: * Fixed not inserting title into the output HTML. * Removed the deprecated callback and replace the latest. * `PrerenderPlugin`: Fixed not injecting startup js when multiple locales exist. # 4.1.0 (March 26, 2021) * `option-parser`: Set default theme config to `sandstone`. * `SnapshotPlugin`: Added `sandstone` support for clearing resource bundle. * `framework` mixin: Fixed the glob patterns for test files to ignore. # 4.0.0 (February 5, 2021) * Updated dependencies including React 17. * `PrerenderPlugin`: Added support for `ReactDOM.hydrate` instead of `ReactDOM.render` for prerendered apps. # 3.1.1 (February 3, 2021) * `PrerenderPlugin`: Fixed compatibility for supporting latest `html-webpack-plugin`. * `framework` mixin: Adds the `@enact/docs-utils` location to ignore when scanning framework files to include in framework bundles. # 3.1.0 (August 3, 2020) * `externals` and `framework` mixins: ensure that `@enact/i18n` is included with a framework bundle, even when local files. This package is unique as it contains the iLib path hardcoding and should be within the framework bundle. * `framework` mixin: set relative application resbundle (`"resources"` relative to the html location) * `ILibPlugin`: * Add support for `relativeResources` boolean option, which specifies the resources will be relative to the HTML and not relative to any public path that's been set. * Add override support for `context` option via `ILIB_CONTEXT` environment variable. * Add override support for `create` option via `ILIB_ASSET_CREATE` environment variable. # 3.0.2 (August 3, 2020) * `EnactFrameworkRefPlugin`: Fixed to ensure locally-accessed files within ignored packages do not get delegated. # 3.0.1 (July 31, 2020) * `framework` mixin: Adds the full list of Jest unit test locations to ignore when scanning framework files to include in framework bundles. # 3.0.0 (July 31, 2020) * All dependencies updated for lastest releases. * Added new `css-module-ident` module, which contains a debug webpack css-loader `getLocalIdent` function that produces plaintext predictable classnames. * Added support for `config-helper` to detect any polyfill entrypoints. * Added support for `option-parser` to handle `alias` and `publicUrl` fields. * Switched from `node-glob`to `fast-glob` for speed improvements. * `framework` mixin: * Added `externals-polyfill`/`externalsPolyfill` boolean option, which includes any detected polyfill entrypoint (or `core-js` modules) within the framework bundle. * Added local files to framework bundle when local project itself is an @enact framework theme.. * `externals` mixin: * Added `externals-polyfill`/`externalsPolyfill` boolean option, which will detect any polyfill entry and forward it to `EnactFrameworkRefPlugin`. * Added local scope of files to the list of libraries when applied on an @enact framework theme. * `PrerenderPlugin`: Updated to interact with HtmlWebpackPlugin 4.x hook format. * `EnactFrameworkPlugin`: * Added `polyfill` string option, which specifies a polyfill file that will be labelled as `@enact/polyfils` module in the framework bundle. * Updated module ID resolving to handle `core-js` modules with top-level `corejs/*` accessors. * Updated module ID resolving to handle locally-scoped files. * `EnactFrameworkRefPlugin`: * Added `polyfill` string option, which specifies a polyfill file to delegate out as `@enact/polyfills`. * Updated module delegate handling to setup correct paths for locally-scoped files when they're externally used. # 2.8.1 (September 23, 2020) * `SnapshotPlugin`: Fixed to clear ilib cache when updating environment # 2.8.0 (July 20, 2020) * `WebOSMetaPlugin`: Added support for `extraLargeIcon` asset field. # 2.7.0 (May 13, 2020) * `ILibPlugin`: Added support for `symlinks` boolean option (defaults to `true`). Similar to Webpack's `resolve.symlinks` this controls whether the plugin will resolve symlink paths when resolving iLib bundles during asset output. # 2.6.0 (April 3, 2020) * `ILibPlugin`: * Added support for `context` option rather than always defaulting to `compiler.context` * Fixed context not being used when detecting/resolving bundles * Fixes app-level resource bundle to use resolved filepath to ensure context sensitivity. # 2.5.1 (March 23, 2020) * Fixed `framework` mixin erroneously including `ilib/lib/RhinoLoader.js`. # 2.5.0 (February 25, 2020) * Updated `option-parser` to support auto-detection of local source level theme files (screentypes.json, fontgenerator.js). * Fixed theme repo `framework` mixin usage by ignoring all sample and test files and avoiding contamination. # 2.4.2 (January 29, 2020) * `EnactFrameworkPlugin`: Added support for ilib inclusion in bundles. * `EnactFrameworkRefPlugin`: Added support for `ignore` array option for package paths to handle internally, rather than deferred to external. * `ILibPlugin`: Removed special handling for moonstone package and added generic constant support for root-level packages. # 2.4.1 (September 4, 2019) * `SnapshotPlugin`: Fixed V8 snapshotting when `ilib` external package is not found. # 2.4.0 (August 12, 2019) * Redesigned `option-parser` with encapsulated theme option support and environment variable overriding. * Update `ILibPlugin` to support theme-based ResBundle resources. * Fixed bug where undefined `ri` values would result in `Infinity` pixel values. # 2.3.0 (July 12, 2019) * Added support utility-wide for new `ilib` external NPM package (with backward compatibility for `@enact/i18n/ilib`). # 2.2.2 (July 2, 2019) * Reduce `find-cache-dir` version to `^2.0.0` to retain NodeJS 6.x compatibility for one more release. # 2.2.1 (June 10, 2019) * Expand default browserslist config from `last 2` stable versions of Chrome and Firefox to `last 5`. # 2.2.0 (May 7, 2019) * Updated all dependencies to latest releases. * `PrerenderPlugin`: * Fixed React hook-based rendering, ensuring only one copy of React is loaded. * `WebOSMetaPlugin`: * No longer requires HtmlWebpackPlugin to function. * Switch deprecated `new Buffer()` to `Buffer.from()` to avoid NodeJS deprecation notice. # 2.1.0 (January 31, 2019) * Added support for parsing `forceCSSModules` Enact project option. * Fixed `framework` mixin generating correct module IDs when a symlinked Enact framework is used as the source. ## 2.0.1 (November 6, 2018) * Fixed `EnactFrameworkRefPlugin` for Webpack 4 dll format and the latest HtmlWebpackPlugin * Fixed dynamic setting `ILIB_BASE_PATH` for `EnactFrameworkRefPlugin` * Fixed `EnactFrameworkRefPlugin` to only hook in to webOS appinfo events when `WebOSMetaWebpackPlugin` is used * Removes @enact/dev-utils from the possible entrypoints that `framework` mixin builds can use * All mixins now return the configs themselves, to support chaining ## 2.0.0 (October 4, 2018) * Update all dependencies, with webpack peer dependency restricted to >=4.0.0 * Refactor all webpack plugins into ES6 classes * Update all webpack plugins to use new `tappable` hook system * For webpack plugins, use `compiler.outputPath` and `compiler.context` instead of parsed values from `compiler.options` * Explicitly invoke `apply`on embedded plugins on the compiler * Support `browserslist` as the primary method of browser/node targeting with webpack `target` extrapolated as determined * Add `setEnactTargetsAsDefault`function to option-parser which can set the Enact supported browsers as the `browserslist` values to use when not user-set. * Update config-helper to remove loader functions and add support for finding/modifying minimizer plugins. * `isomorphic` mixin: * Enable mapfile output by default when building more than 1 locale * Inject snapshot helper file as a webpack entry * Set webpack config `output.globalObject` to `this` for proper umd support * `framework` mixin: * Filter out ilib localedata directory * Fix support for symlinks * Set webpack config `output.globalObject` to `this` for proper umd support * `unmangle` mixin: * Switch from UglifyJsPlugin to TerserPlugin support * Look for TerserPlugin as a minifier plugin rather than a regular plugin * Fixed beautify option support * `EnzymeAdapterPlugin`: * Remove workaround Enzyme React 16 adapter since the context support has made it upstream * `ILibPlugin`: * Fix to correctly copy ilib resource assets for apps under `@enact` scope (though don't create when missing). * Fix to route moonstone 'app' assets to a `_resources_` pseudo directory to prevent extra XHR calls during test execution. * `PrerenderPlugin`: * Fixed compatibility for supporting latest `html-webpack-plugin` * `SnapshotPlugin`: * Remove dynamic helper javascript entry injection (since access to config was removed in webpack 4), with it relocated to the `isomorphic` mixin * Add `SnapshotPlugin.helperJS` property which returns the resolve path to the helper file. ## 1.2.0 (September 24, 2018) * Added support for `applyEnactMeta` function in `option-parser.js` to apply Enact metadata overrides. * Added support for `imageForRecents` asset field in `WebOSMetaPlugin`. * Fixed uglify unmangling mixin usage with latest UglifyPlugin option format. ## 1.1.2 (July 26, 2018) * Fixed locale classes failing to be applied on a multi-locale prerender when deep-linking is used. * Fixed font style prerendering, with added support for font overrides. ## 1.1.1 (July 16, 2018) * Fixed `PrerenderPlugin` not correctly spacing root classnames in multilocale prerendered HTML files. ## 1.1.0 (July 6, 2018) * Added new plugin `VerboseLogPlugin` and a corresponding `verbose` mixin. Progressively outputs detailed log informations as a build executes. * Added support for boolean flag option `externalStartup` in the enact options in a project's `package.json`. When true, any prerender startup scripts will be external file assets rather than embedded inline javascript. * Fixed `SnapshotPlugin` build failure with React 16.4.1. ## 1.0.4 (April 26, 2018) * Support `@enact/core/snapshot` window hook for SnapshotPlugin's environment update helper. * Preserve HTML comment nodes within app prerendered HTML (fixing support for React 15's empty nodes). ## 1.0.3 (April 12, 2018) * PrerenderPlugin now disables usage of any bundled polyfills (via setting `global.skipPolyfills`), as a local `core-js` is already used on the active Node process. ## 1.0.2 (March 30, 2018) * Fixed automatic resolution independence detection and configuration. * Updated framework mixin to remove ReactPerf reference, which is no longer needed in React 16. ## 1.0.1 (March 26, 2018) * SnapshotPlugin's mock window updated to catch modular event listeners added to document/window and forwarded at launch-time. Fixes React 16 support. * SnapshotPlugin will now output a helpful stack trace on exception. ## 1.0.0 (March 13, 2018) * Added basic documentation. * Top-level exports are now loaded/parsed on-demand when accessed. * Support dynamic output path with framework mixin. * Remove unneeded `main` package detection. * Fix root `package.json` detection on Windows platform. * Fix iLib localedata/moonstone ResBundle detection on Windows platform. * Ensure moonstone ResBundle is correctly included when running tests within moonstone itself. * Improved source code formatting/validation via `eslint-plugin-import` along with `eslint-plugin-prettier`. ## 0.5.0 (January 9, 2018) * Added a new plugin for webpack, EnzymeAdapterPlugin, which automates the Enzyme initialization of an adapter. Whenever an app imports/requires Enzyme, a small proxy will intervene and ensure the desired Enzyme adapter is configured and used. This allows easier Enzyme usage within karma-webpack, for example. * PrerenderPlugin inline script to initialize root `fontSize` now considers window height in addition to window width. * Deep linking support in a prerendered page will now default to empty content, inserting prerendered app HTML as needed. ## 0.4.0 (November 6, 2017) * Unify PrerenderPlugin and LocaleHtmlPlugin into a single general-purpose plugin * Defaults to `en-US` locale but supports all the same locale option as LocaleHtmlPlugin (json files, literal objects, presets, etc.). * Locale preset json format updated to a more readable layout. For example: ```json { "locales": [ "en-US", "es-ES", "fr-FR", "ko-KR", "zh-Hans-CN", ] } ``` * Fixed webpack 3.x prerendering when using asynchronous chunks. * Fixed screentype detection when not using an identifiable theme like moonstone. * Fixed browserslist support when using Electron browser to auto-determine webpack should use `electron-main` environment. ## 0.3.0 (October 30, 2017) * Added support for targetted builds using the `BROWSERSLIST` browser [standard format](https://github.com/ai/browserslist). * Added `core-js` polyfill support to vdom rendering to allow for modern APIs. * Fixed loader detection from loader filepaths. * Changed default scope of browser support to ignore IE and IE Mobile. * Changed to generalized `package.json` requirements for greater flexibility and sharing or dependencies between packages. ## 0.2.0 (October 5, 2017) * Added an `option-parser` module to parse and store the Enact build options from the `package.json` and to handle intertwined values and fallbacks to do with `fontGenerator`, `screenTypes`, `ri`, `theme`, `target`, etc. * Added support for a CommonJS font generator to generate localized font CSS (deprecating the previous global prerender hook). * Added support for dynamic replacement of main entrypoint to `config-helper`. * Updated `package-root` to now throw an error when no root is found. * Updated dependencies. ## 0.1.0 (September 28, 2017) * Initial code migration from `enact-dev`