我在Jenkins官方文档上关注this tutorial。
本教程将向您展示如何使用Jenkins来编排构建和 使用Node Package测试一个简单的 Node.js 和 React 应用程序 经理(npm),并为开发提供不同的结果 和生产目的。
一切都非常简单,但是当我在指南link here的“生产分支”部分“运行您的管道”时,我遇到了这个错误。
收到错误
+ sleep 1
+ ./node_modules/serve/bin/serve.js -c 0 -s build
/var/jenkins_home/workspace/Aviato-Team_production-OZ2WCGEMEZUSDYGKYBCG4BWFXFVS2KVB47HNPHOYCFLEP7JEO52Q/node_modules/serve/bin/serve.js:83
detect(port).then(async open => {
^^^^^
SyntaxError: missing ) after argument list
at createScript (vm.js:56:10)
at Object.runInThisContext (vm.js:97:10)
at Module._compile (module.js:549:28)
at Object.Module._extensions..js (module.js:586:10)
at Module.load (module.js:494:32)
at tryModuleLoad (module.js:453:12)
at Function.Module._load (module.js:445:3)
at Module.runMain (module.js:611:10)
at run (bootstrap_node.js:387:7)
at startup (bootstrap_node.js:153:9)
+ echo 193
+ set +x
Now...
Visit http://localhost:5000 to see your Node.js/React application in action.
(This is why you specified the "args -p 5000:5000" parameter when you
created your initial Pipeline as a Jenkinsfile.)
我一步一步地使用他们自己的存储库和设置代码来跟踪他们的指南。我唯一改变的是,不是使用Git
创建管道,而是使用GitHub
,如上所述here in the guide。
当我导航到http://localhost:5000
时,没有显示任何内容。
需要注意的一些事项(如果有帮助):
如何修复此错误?我还在学习并遵循本指南,所以由于这个错误是我无法控制的,我不知道如何修复它。
编辑:如果有帮助,我的Win10机器上的终端正在输出:
Apr 20, 2018 4:02:23 AM com.squareup.okhttp.internal.Platform$JdkWithJettyBootPlatform getSelectedProtocol
INFO: ALPN callback dropped: SPDY and HTTP/2 are disabled. Is alpn-boot on the boot class path?
Apr 20, 2018 4:04:40 AM org.jenkinsci.plugins.workflow.support.steps.input.POSTHyperlinkNote <init>
WARNING: You need to define the root URL of Jenkins
Apr 20, 2018 4:04:40 AM org.jenkinsci.plugins.workflow.support.steps.input.POSTHyperlinkNote <init>
WARNING: You need to define the root URL of Jenkins
Here's my GitHub如果您想查看生产分支代码。
答案 0 :(得分:1)
看起来用于运行/构建项目的node.js版本不支持./node_modules/serve/bin/serve.js
中使用的异步箭头函数构造。这应该在节点版本7.10.1及更高版本中得到支持。
您可能应该首先更改构建以包含node -v
命令,以便检查节点版本是否确实存在问题。
如果是这种情况,您需要更新容器中的节点版本。如果您以前没有这样做,在Docker中执行此操作并非易事。我想说你最好的选择是通过在容器中启动shell并手动更新节点来更改当前容器的状态,或者根据jenkinsci/blueocean创建自己的Dockerfile。
答案 1 :(得分:0)
我知道这个问题有点老了,但是您需要将node:9-alpine
中的docker镜像更新为Jenkinsfile
。
有关详细信息,请参见this documentation。