无法从maven运行npm和bash

u12*_*123 12 maven npm

我在我的ubuntu盒子上安装了nodejs(npm)和npm install grunt-cli.我找到了maven的maven-ant-run配置:

https://gist.github.com/nadavdav/5308453

但是当我从命令行运行mvn clean install时,我得到:

building:
     [echo] ---------------------------------------------------
     [echo] -- NPM INSTALL --
     [echo] ---------------------------------------------------
     [exec] /usr/bin/npm: npm: line 2: syntax error near unexpected token `;'
     [exec] /usr/bin/npm: npm: line 2: `;(function () { // wrapper in case we're in module_context mode'
Run Code Online (Sandbox Code Playgroud)

为什么在maven中运行时npm会失败?

编辑:我现在已将配置更新为:

<!-- <exec executable="bash" dir="${project.basedir}" osfamily="unix" -->
<!--    failonerror="true"> -->
<!--    <arg line="npm install" /> -->
<!-- </exec> -->

<!-- WORKING -->
     <exec executable="npm" dir="${project.basedir}" failonerror="true">
    <arg value="install" />
     </exec>
Run Code Online (Sandbox Code Playgroud)

哪个有效.但奇怪的是,它在运行原始版本时不起作用.

Jon*_*den 9

因为在第一个示例中,您使用参数'npm install'运行'bash',这与bash npm install在命令行上运行相同.这告诉bash尝试将'npm'作为shell脚本运行,但npm路径中的脚本是javascript代码.试试吧:

john-warden-mba-2012:nodetest john$ bash npm install
/opt/local/bin/npm: npm: line 2: syntax error near unexpected token `;'
/opt/local/bin/npm: npm: line 2: `;(function () { // wrapper in case we're in module_context mode'
Run Code Online (Sandbox Code Playgroud)

  • 明白了...但是如何修复 ant 呢?@u123 更新对我的案例不起作用。 (3认同)