Configuration
- Properties
- npm/pnpm
- PWA
pnpm (also known as performant npm) is used as the default frontend package manager instead of npm. The benefit of pnpm is that it uses a shared repository, which reduces the build time.
If pnpm is not installed globally the framework will install it locally using npm. The package-lock.json
file which is used by npm is incompatible with pnpm and it’s removed automatically if pnpm is used. pnpm uses pnpm-lock.yaml
file instead of package-lock.json
. This means that any custom dependency configurations should go to pnpm-lock.yaml
.
It’s still possible to use npm. To switch to npm you can set the vaadin.pnpm.enable
system property to false
.
For a Spring Boot based project, you can put vaadin.pnpm.enable = false
into the application.properties
file.
For a plain Java or a JavaEE based project, you can use Servlet 3.0 @WebServlet annotation:
Show code
Java
Expand code
@WebServlet(urlPatterns = "/*", name = "myservlet", asyncSupported = true, initParams = {
@WebInitParam(name = "pnpm.enable", value = "false") })
public class CustomServlet extends VaadinServlet {
}
or use the traditional web.xml
file
Show code
XML
Expand code
<?xml version="1.0" encoding="UTF-8"?>
<web-app
id="WebApp_ID" version="3.0"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<servlet>
<servlet-name>myservlet</servlet-name>
<servlet-class>
com.vaadin.server.VaadinServlet
</servlet-class>
<init-param>
<param-name>pnpm.enable</param-name>
<param-value>false</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>myservlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
To read more about how to set properties, see the Configuration Properties.
Alternatively, the property can be also set to the vaadin-maven-plugin
, using pnpmEnable
. Note that this only works for production mode.
Show code
XML
Expand code
<plugin>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-maven-plugin</artifactId>
<version>${project.version}</version>
<executions>
<execution>
<goals>
<goal>build-frontend</goal>
</goals>
</execution>
</executions>
<configuration>
<pnpmEnable>false</pnpmEnable>
</configuration>
</plugin>