How the Default Preset Configures the liferay-npm-bundler

The liferay-npm-bundler comes with a default configuration preset: liferay-npm-bundler-preset-standard —Note you may omit the liferay-npm-bundler prefix from the npm package name in your .npmbundlerrc file. This preset configures several plugins for the build process and is automatically used (even if the .npmbundlerrc is missing), unless you override it with one of your own. Running the liferay-npm-bundler with this preset applies the config file from liferay-npm-bundler-preset-standard:

{
    "/": {
       "plugins": ["resolve-linked-dependencies"],
       ".babelrc": {
         "presets": ["liferay-standard"]
       },
       "post-plugins": ["namespace-packages", "inject-imports-dependencies"]
    },
    "*": {
       "copy-plugins": ["exclude-imports"],
       "plugins": ["replace-browser-modules"],
       ".babelrc": {
         "presets": ["liferay-standard"]
       },
       "post-plugins": [
         "namespace-packages",
         "inject-imports-dependencies",
         "inject-peer-dependencies"
       ]
    }
}

The configuration above states that for all npm packages (*) the pre-process phase (plugins) must run the replace-browser-modules plugin. Setting this to post-plugins would run it during the post phase instead.

The liferay-standard preset applies the following plugins to packages:

  • exclude-imports: Exclude packages declared in the imports section from the build.

  • inject-imports-dependencies: Inject dependencies declared in the imports section in the dependencies’ package.json files.

  • inject-peer-dependencies: Inject declared peer dependencies (as they are resolved in the project’s node_modules folder) in the dependencies’ package.json files.

  • namespace-packages: Namespace package names based on the root project’s package name to isolate packages per project and avoid collisions. This prepends <project-package-name>$ to each package name appearance in package.json files.

  • replace-browser-modules: Replaces the server side files for modules listed under browser/unpkg/jsdelivr section of package.json with their browser counterparts.

  • resolve-linked-dependencies: Replace linked dependencies versions appearing in package.json files (those obtained from local file system or GitHub, for example) by their real version number, as resolved in the project’s node_modules directory.

In addition, the bundler runs Babel with the babel-preset-liferay-standard preset, that invokes the following plugins:

Now you know the available configuration presets for .npmbundlerrc and how they work.

0 (0 Votes)
Configuring liferay-npm-bundler Previous