13

我已经在我的 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'

为什么在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>

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

4

1 回答 1

13

因为在第一个示例中,您使用参数“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'
于 2013-08-19T19:02:21.573 回答