热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

新的Vaadin14应用程序无法运行,错误“无法确定'节点'工具。”缺少Node.js和npm工具

新的Vaadin14应用程序无法运行,错误“无法确定'节点'工具。”缺少Nod

更新:14.2中未发行

Vaadin 14.2和16已更改为现在在Maven驱动的项目中自动包含必需的 npm 工具。无需手动安装 Node.jsnpm

引用此博客文章:

自动安装Node.js

从版本14.2和16开始,Node.js安装(包括npm)自动进行。它安装.vaadin在主文件夹内的文件夹中,并从那里重新用于所有Vaadin项目。和以前一样,Node仅用于构建事物的前端。部署生产后它不会运行!

进一步的改进: pnpm 代替 npm

可行的前端依赖关系管理-
pnpm从14.0开始,在后台,npm被用于管理前端依赖关系。现在,我们增加了对pnpm的支持,它引入了以下好处:

1.
与本地计算机和CI系统上的npm相比,构建时间更短,因为pnpm只下载一次软件包并从本地缓存中重新使用它们。


  1. 在项目中更新Vaadin版本时,无需删除package.json,锁定文件或node_modules文件夹。

在14.2中,默认情况下仍使用npm,但我们建议您测试pnpm并提供您的反馈。尝试pnpm很容易:无需迁移,只需使用配置属性或Maven插件配置启用它。您可以在此处了解有关pnpm的更多信息。Vaadin 16将默认使用pnpm。

我已经验证了此方法的效果。现在,我已经从Mac上手动删除了Node.js / npm安装。



tl; dr

该Vaadin
14团队期望你有Node.js的和NPM安装在计算机上的工具。

或者,Vaadin 14 似乎 正在与Node.js / npm一起使用,通过frontend-maven-
plugin
您可以在MavenPOM文件中指定的工具将其自动安装在项目中(而不是在计算机上全局安装)。有关您的POM,请参见下面的XML代码段。

如果您想在计算机上全局安装Mode /
npm,请确保阅读另一本 Tom
Tomosad的Answer。

细节

从Vaadin 14开始,Vaadin团队正在切换:


  • 从HTML Imports,Bower和WebJars

  • 使用Node.js到ES6 Modules,npm和Webpack

…作为它们从聚合物 2
过渡到聚合物3的一部分。

请参阅 Vaadin 14+中的
博客文章 Bower和npm

希望,作为Java上Vaadin的用户,我们不需要关心这些底层技术细节……但是,有一件事:不幸的是, 默认情况下 在您的Vaadin项目中。

您有两种解决方案:


  • 全局安装工具。

  • 在您的项目中安装。

我更喜欢后者。而且我更喜欢让Maven在我的项目中自动安装它们,而让我减少手动管理的工作量。

我不知道我的node / npm-per-project解决方案的局限性或影响。我几乎不知道节点/
npm的目的或性质,也不知道Vaadin如何利用它们。因此,使用此解决方案需要您自担风险。我只能说这似乎对我有用。

添加frontend-maven-plugin到您的项目

frontend-maven-pluginMaven可以使用该工具在Vaadin项目中使用npm下载和安装Node.js。

在您的Vaadin项目中打开Maven POM文件。

在该 jetty:run POM 的元素内添加以下块。


com.github.eirslett
frontend-maven-plugin

1.8.0



install node and npm

install-node-and-npm


generate-resources



v10.16.3






当然,您可以调整该代码段以使用最新的版本号。检查Node.js的页面的最新版本号。

注意npm,由于该工具与最新版本的Node.js捆绑在一起,因此我们已注释掉该项目。

其余步骤:


  1. MavenIntelliJ 的面板中,运行Lifecycle名为clean和的项目install。请稍等一下,下载并配置了更多项目。(请注意控制台历史记录中的“安装节点版本v10.16.3”项。)

  2. 在同一面板的Plugins>区域中jetty,运行该jetty:run项目。等待Jetty服务器启动以运行Vaadin应用程序,请稍等。

在控制台上,您应该看到类似以下的信息(所有Vaadin的发行版都常年出现这种神秘的Quiet
Time
警告):

[INFO] Started Jetty Server
[INFO] Using Non-Native Java sun.nio.fs.PollingWatchService
[WARNING] Quiet Time is too low for non-native WatchService [sun.nio.fs.PollingWatchService]: 1000 <5000 ms (defaulting to 5000 ms)


  1. 将您的网络浏览器指向:http://localhost:8080/在您的应用成功运行时,看到“单击我”按钮。

该解决方案来自Maven插件的项目页面frontend-maven-
plugin
。请注意,示例POM片段存在错误,无法将标签包装在多个标签中。我在那里提交了#838票。

您可能需要在Vaadin论坛中关注此讨论。

供您参考,这是一个完整的POM文件,可以与您进行比较。


xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
work.basil.example
acme
acme
2.0-snAPSHOT
war

13
13
UTF-8
UTF-8
false
14.0.5
pre-integration-test



central
https://repo1.maven.org/maven2/

false




Vaadin Directory
https://maven.vaadin.com/vaadin-addons

false





central
https://repo1.maven.org/maven2/

false






com.vaadin
vaadin-bom
pom
import
${vaadin.version}





com.vaadin

vaadin



com.vaadin.webjar
*


org.webjars.bowergithub.insites
*


org.webjars.bowergithub.polymer
*


org.webjars.bowergithub.polymerelements
*


org.webjars.bowergithub.vaadin
*


org.webjars.bowergithub.webcomponents
*






org.slf4j
slf4j-simple


javax.servlet
javax.servlet-api
3.1.0
provided


com.vaadin
vaadin-testbench
test



jetty:run


org.apache.maven.plugins
maven-compiler-plugin
3.8.1



org.eclipse.jetty
jetty-maven-plugin
9.4.19.v20190610


2


true





com.vaadin
vaadin-maven-plugin
${vaadin.version}



prepare-frontend





com.github.eirslett
frontend-maven-plugin

1.8.0



install node and npm

install-node-and-npm


generate-resources



v10.16.3











production

true



com.vaadin
flow-server-production-mode





com.vaadin
vaadin-maven-plugin



build-frontend

compile







integration-tests



org.eclipse.jetty
jetty-maven-plugin
9.4.19.v20190610

0
8081
5
${project.artifactId}



start-jetty
pre-integration-test

deploy-war



stop-jetty
post-integration-test

stop






org.apache.maven.plugins
maven-failsafe-plugin
3.0.0-M3



integration-test
verify




false
true


${webdriver.chrome.driver}




com.lazerycode.selenium
driver-binary-downloader-maven-plugin
1.0.17

true


${project.basedir}/drivers/driver


${project.basedir}/drivers/driver_zips


${project.basedir}/drivers.xml





${drivers.downloader.phase}

selenium













推荐阅读
  • 本文介绍了JavaScript进化到TypeScript的历史和背景,解释了TypeScript相对于JavaScript的优势和特点。作者分享了自己对TypeScript的观察和认识,并提到了在项目开发中使用TypeScript的好处。最后,作者表示对TypeScript进行尝试和探索的态度。 ... [详细]
  • 2019独角兽企业重金招聘Python工程师标准1、确认工程是否安装eslint-plugin-vue如图所示,确认工程里的package.json里是否有es ... [详细]
  • socket.io是个基于node.js的快平台实时通讯框架。只用不到10行代码,就可以搭建一个简单的多人实时聊天室。先来看看运行后的效果:socket.io多人聊天室只要简单几 ... [详细]
  • Node.js学习笔记(一)package.json及cnpm
    本文介绍了Node.js中包的概念,以及如何使用包来统一管理具有相互依赖关系的模块。同时还介绍了NPM(Node Package Manager)的基本介绍和使用方法,以及如何通过NPM下载第三方模块。 ... [详细]
  • 找出字符串中重复字符
    2019独角兽企业重金招聘Python工程师标准packagejavaBasic;importjava.util.HashMap;importjava.util.Map; ... [详细]
  • 尝试在数据库中查询数据并在datatables中异步显示时总是报错。有人帮我看下吗,好像是这个json的格式出问题,我看了firebug,应该是servlet返回的json数据格式问题,但因为新 ... [详细]
  • packagetest;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.IOE ... [详细]
  • pdf怎么把html变成pdf1 用AdobeAcroat8.1.2,打开网页后,页面右键菜单中会出现一个“转换为AobePDF的选项,点击就可以转换。 安装AdobeAcroba ... [详细]
  • Eclipse中SpringBoot响应jsp的简单demo
    首先在Eclipse里新建一个maven工程,这里的打包类型和父包如果后续再去pom中添加也可以此时的工程路径是这样的接下来去到pom中添加相关的依赖,如果有报错mavenupda ... [详细]
  • day3作业:  2.登陆时,从文件里面取账号和密码,判断用户是否存在,输入为空的也需要检验importjsonall_us ... [详细]
  • JavaScript语言自身只有字符串数据类型,没有二进制数据类型。但在处理像TCP流或文件流时,必须使用到二进制数据。因此在Node.js中&#x ... [详细]
  • 网络请求模块选择——axios框架的基本使用和封装
    本文介绍了选择网络请求模块axios的原因,以及axios框架的基本使用和封装方法。包括发送并发请求的演示,全局配置的设置,创建axios实例的方法,拦截器的使用,以及如何封装和请求响应劫持等内容。 ... [详细]
  • VueCLI多页分目录打包的步骤记录
    本文介绍了使用VueCLI进行多页分目录打包的步骤,包括页面目录结构、安装依赖、获取Vue CLI需要的多页对象等内容。同时还提供了自定义不同模块页面标题的方法。 ... [详细]
  • 本文详细介绍了如何创建和使用VUE uni-app开发环境,包括通过HBuilderX可视化界面和通过vue-cli命令执行的方法。文章内容简单清晰,易于学习与理解。通过学习本文,读者可以深入了解VUE uni-app开发环境,并通过实践验证掌握具体的使用情况。编程笔记将为读者推送更多相关知识点的文章,欢迎关注! ... [详细]
  • node.jsrequire和ES6导入导出的区别原 ... [详细]
author-avatar
陈协莹隆心
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有