You're viewing an older version of Vaadin JavaDoc. Please see version 24.7.0 for the latest.
com.vaadin.flow.server.frontend.

Class NodeTasks.Builder

    • Constructor Detail

      • Builder

        public Builder​(Lookup lookup,
                       File npmFolder,
                       String buildDirectory)

        Create a builder instance given an specific npm folder.

        Parameters:

        lookup - a Lookup to discover services used by Flow (SPI)

        npmFolder - folder with the `package.json` file

        buildDirectory - project build directory

      • Builder

        public Builder​(Lookup lookup,
                       File npmFolder,
                       File generatedPath,
                       String buildDirectory)

        Create a builder instance with custom npmFolder and generatedPath

        Parameters:

        lookup - a Lookup to discover services used by Flow (SPI)

        npmFolder - folder with the `package.json` file

        generatedPath - folder where flow generated files will be placed.

        buildDirectory - project build directory

      • Builder

        public Builder​(Lookup lookup,
                       File npmFolder,
                       File generatedPath,
                       File frontendDirectory,
                       String buildDirectory)

        Create a builder instance with all parameters.

        Parameters:

        lookup - a Lookup to discover services used by Flow (SPI)

        npmFolder - folder with the `package.json` file

        generatedPath - folder where flow generated files will be placed.

        frontendDirectory - a directory with project's frontend files

        buildDirectory - project build directory

    • Method Detail

      • build

        public NodeTasks build()

        Creates a NodeExecutor using this configuration.

        Returns:

        a NodeExecutor instance

      • withWebpack

        public NodeTasks.Builder withWebpack​(File webappResourcesDirectory,
                                             File resourceOutputDirectory)

        Sets the webpack related properties.

        Parameters:

        webappResourcesDirectory - the directory to set for webpack to output its build results, meant for serving from context root.

        resourceOutputDirectory - the directory to output generated non-served resources, such as the "config/stats.json" stats file, and the "config/flow-build-info.json" token file.

        Returns:

        this builder

      • enablePackagesUpdate

        public NodeTasks.Builder enablePackagesUpdate​(boolean enablePackagesUpdate)

        Sets whether to enable packages and webpack file updates. Default is true.

        Parameters:

        enablePackagesUpdate - true to enable packages and webpack update, otherwise false

        Returns:

        this builder

      • enableImportsUpdate

        public NodeTasks.Builder enableImportsUpdate​(boolean enableImportsUpdate)

        Sets whether to enable imports file update. Default is false. This will also enable creation of missing package files if set to true.

        Parameters:

        enableImportsUpdate - true to enable imports file update, otherwise false

        Returns:

        this builder

      • runNpmInstall

        public NodeTasks.Builder runNpmInstall​(boolean runNpmInstall)

        Sets whether run npm install after updating dependencies.

        Parameters:

        runNpmInstall - run npm install. Default is false

        Returns:

        the builder

      • withFlowResourcesFolder

        public NodeTasks.Builder withFlowResourcesFolder​(File flowResourcesFolder)

        Sets the appropriate npm package folder for copying flow resources in jars.

        Parameters:

        flowResourcesFolder - target folder

        Returns:

        the builder

      • copyResources

        public NodeTasks.Builder copyResources​(Set<File> jars)

        Sets whether copy resources from classpath to the appropriate npm package folder so as they are available for webpack build.

        Parameters:

        jars - set of class nodes to be visited. Not null

        Returns:

        the builder

      • copyTemplates

        public NodeTasks.Builder copyTemplates​(boolean copyTemplates)

        Sets whether copy templates to META-INF/VAADIN/config/templates.

        Parameters:

        copyTemplates - whether to copy templates

        Returns:

        the builder

      • withEmbeddableWebComponents

        public NodeTasks.Builder withEmbeddableWebComponents​(boolean generateEmbeddableWebComponents)

        Sets whether to collect and package WebComponentExporter dependencies.

        Parameters:

        generateEmbeddableWebComponents - collect dependencies. Default is true

        Returns:

        the builder

      • createMissingPackageJson

        public NodeTasks.Builder createMissingPackageJson​(boolean create)

        Sets whether to create the package file if missing.

        Parameters:

        create - create the package

        Returns:

        the builder

      • copyLocalResources

        public NodeTasks.Builder copyLocalResources​(File localResourcesFolder)

        Set local frontend files to be copied from given folder.

        Parameters:

        localResourcesFolder - folder to copy local frontend files from

        Returns:

        the builder, for chaining

      • useV14Bootstrap

        public NodeTasks.Builder useV14Bootstrap​(boolean useDeprecatedV14Bootstrapping)

        Use V14 bootstrapping that disables index.html entry point.

        Parameters:

        useDeprecatedV14Bootstrapping - true to use legacy V14 bootstrapping

        Returns:

        the builder, for chaining

      • withFrontendGeneratedFolder

        public NodeTasks.Builder withFrontendGeneratedFolder​(File frontendGeneratedFolder)

        Set the folder where frontend files should be generated.

        Parameters:

        frontendGeneratedFolder - folder to generate frontend files in.

        Returns:

        the builder, for chaining

      • withApplicationProperties

        public NodeTasks.Builder withApplicationProperties​(File applicationProperties)

        Set application properties file for Spring project.

        Parameters:

        applicationProperties - application properties file.

        Returns:

        this builder, for chaining

      • withEndpointGeneratedOpenAPIFile

        public NodeTasks.Builder withEndpointGeneratedOpenAPIFile​(File endpointGeneratedOpenAPIFile)

        Set output location for the generated OpenAPI file.

        Parameters:

        endpointGeneratedOpenAPIFile - the generated output file.

        Returns:

        the builder, for chaining

      • withEndpointSourceFolder

        public NodeTasks.Builder withEndpointSourceFolder​(File endpointSourceFolder)

        Set source paths that OpenAPI generator searches for endpoints.

        Parameters:

        endpointSourceFolder - java source folder

        Returns:

        the builder, for chaining

      • useByteCodeScanner

        public NodeTasks.Builder useByteCodeScanner​(boolean byteCodeScanner)

        Sets frontend scanner strategy: byte code scanning strategy is used if byteCodeScanner is true, full classpath scanner strategy is used otherwise (by default).

        Parameters:

        byteCodeScanner - if true then byte code scanner is used, full scanner is used otherwise (by default).

        Returns:

        the builder, for chaining

      • populateTokenFileData

        public NodeTasks.Builder populateTokenFileData​(elemental.json.JsonObject object)

        Fill token file data into the provided object.

        Parameters:

        object - the object to fill with token file data

        Returns:

        the builder, for chaining

      • withTokenFile

        public NodeTasks.Builder withTokenFile​(File tokenFile)

        Sets the token file (flow-build-info.json) path.

        Parameters:

        tokenFile - token file path

        Returns:

        the builder, for chaining

      • enablePnpm

        public NodeTasks.Builder enablePnpm​(boolean enable)

        Enables pnpm tool.

        "pnpm" will be used instead of "npm".

        Parameters:

        enable - enables pnpm.

        Returns:

        the builder, for chaining

      • useGlobalPnpm

        public NodeTasks.Builder useGlobalPnpm​(boolean useGlobalPnpm)

        Uses globally installed pnpm tool for frontend packages installation.

        Parameters:

        useGlobalPnpm - uses globally installed pnpm instead of default one, see FrontendTools.DEFAULT_PNPM_VERSION.

        Returns:

        the builder, for chaining

      • withHomeNodeExecRequired

        public NodeTasks.Builder withHomeNodeExecRequired​(boolean requireHomeNodeExec)

        Requires node executable to be installed in vaadin home folder.

        Parameters:

        requireHomeNodeExec - requires vaadin home node exec

        Returns:

        the builder, for chaining

      • withNodeVersion

        public NodeTasks.Builder withNodeVersion​(String nodeVersion)

        Sets the node.js version to be used when node.js is installed automatically by Vaadin, for example "v16.0.0". Defaults to "v16.18.1".

        Parameters:

        nodeVersion - the new node version to download, not null.

        Returns:

        the builder, for chaining

      • withNodeDownloadRoot

        public NodeTasks.Builder withNodeDownloadRoot​(URI nodeDownloadRoot)

        Sets the download node.js URL. Handy in heavily firewalled corporate environments where the node.js download can be provided from an intranet mirror. Defaults to NodeInstaller.DEFAULT_NODEJS_DOWNLOAD_ROOT.

        Parameters:

        nodeDownloadRoot - the new download URL to set, not null.

        Returns:

        the builder, for chaining

      • withProductionMode

        public NodeTasks.Builder withProductionMode​(boolean productionMode)

        Sets the production mode.

        Parameters:

        productionMode - true to enable production mode, otherwise false

        Returns:

        this builder

      • setNodeAutoUpdate

        public NodeTasks.Builder setNodeAutoUpdate​(boolean update)

        Sets whether it is fine to automatically update the alternate node installation if installed version is older than the current default.

        Parameters:

        update - true to update alternate node when used

        Returns:

        the builder

      • getNpmFolder

        public File getNpmFolder()

        Get the npm folder used for this build.

        Returns:

        npmFolder

      • getGeneratedFolder

        public File getGeneratedFolder()

        Get the generated folder for this build.

        Returns:

        generatedFolder

      • getWebappResourcesDirectory

        public File getWebappResourcesDirectory()

        Get the output directory for webpack output.

        Returns:

        webpackOutputDirectory

      • getFrontendDirectory

        public File getFrontendDirectory()

        Get the defined frontend directory.

        Returns:

        frontendDirectory

      • getBuildDirectory

        public String getBuildDirectory()

        Get the name of the used build directory.

        By default this will be target for maven and build for gradle.

        Returns:

        buildDirectory

      • setJavaResourceFolder

        public NodeTasks.Builder setJavaResourceFolder​(File javaResourceFolder)

        Set the java resources folder to be checked for feature file.

        Needed for plugin execution.

        Parameters:

        javaResourceFolder - java resources folder

        Returns:

        this builder

      • getFeatureFlags

        protected FeatureFlags getFeatureFlags()
      • withPostinstallPackages

        public NodeTasks.Builder withPostinstallPackages​(List<String> postinstallPackages)

        Sets the additional npm packages to run postinstall for.

        By default, postinstall is only run for internal dependencies which rely on post install scripts to work, e.g. esbuild

        Parameters:

        postinstallPackages - the additional npm packages to run postinstall for

        Returns:

        the builder, for chaining

      • getFlowResourcesFolder

        public File getFlowResourcesFolder()