尝试使用 ivy 工具安装 gruntjs 时出现错误。在我的版本中.xml有:
<echo message="installing gruntjs support..." />
<get src="http://ivy.iwin.com/gruntjs-build.xml" dest="${gruntjs.build.file}" usetimestamp="true" />
<import file="${gruntjs.build.file}" />
这个gruntjs-build.xml安装nodejs:
<echo message="installing nodejs support..." />
<get src="http://ivy.iwin.com/nodejs-build.xml" dest="${nodejs.build.file}" usetimestamp="true" />
<import file="${nodejs.build.file}" />
当调用"gruntjs.install"taks时,我收到以下错误:
gruntjs.install:
[exec] npm ERR! 404 404 Not Found: %3E
[exec] npm ERR! 404
[exec] npm ERR! 404 '%3E' is not in the npm registry.
[exec] npm ERR! 404 You should bug the author to publish it
[exec] npm ERR! 404
[exec] npm ERR! 404 Note that you can also install from a
[exec] npm ERR! 404 tarball, folder, or http url, or git url.
[exec]
[exec] npm ERR! System Windows_NT 6.2.9200
[exec] npm ERR! command "c:\project-dir\nodejs-lib\\node.exe" "c:\project-dir\nodejs-lib\node_modules\npm\bin\npm-cli.js" "install" "-g" "grunt-cli" "--prefix" "c:\project-dir/nodejs-lib" ">" "_tempfile.out" "2>&1"
[exec] npm ERR! cwd c:project-dir
[exec] npm ERR! node -v v0.10.32
[exec] npm ERR! npm -v 1.4.12
[exec] npm ERR! code E404
[exec] npmThe system cannot find the file specified.
[exec] Could Not Find c:project-dir_tempfile.out
如果我运行"touch _tempfile.out",它会继续其他"某些文件不在 npm 注册表中"。我认为问题在于 nodejs 是如何安装的。我尝试卸载nodejs,并从管理控制台运行它,但出现相同的错误。
这里的问题是整个命令行都传递给npm
,包括npm
转义为 %3E 的字符>
。
有些东西正在用参数调用npm
"c:\project-dir\nodejs-lib\\node.exe" "c:\project-dir\nodejs-lib\node_modules\npm\bin\npm-cli.js" "install" "-g" "grunt-cli" "--prefix" "c:\project-dir/nodejs-lib" ">" "_tempfile.out" "2>&1"
因此,与其将输出和stderr重定向到_tempfile.out
,npm
认为您要安装名为">" "_tempfile.out" "2>&1"
无论调用什么npm
(ivy?maven?其他工具?(可能都有一种带外方法来指定输出重定向,所以尝试在你的配置文件中四处寻找"_tempfile.out"
指定的位置,看看你是否可以让node
"c:\project-dir\nodejs-lib\\node.exe" "c:\project-dir\nodejs-lib\node_modules\npm\bin\npm-cli.js" "install" "-g" "grunt-cli" "--prefix" "c:\project-dir/nodejs-lib"
无法重现您的问题。远程 ANT 构建文件不再可用。我也不明白你为什么认为这是一个常春藤问题。
我认为您应该从您的构建中调用 NPM 工具目录。请参阅Grunt的安装文档:
http://gruntjs.com/getting-started
例
尝试重新创建此问题失败,如下所示:
build:
[echo] installing nodejs support...
[get] Getting: http://ivy.iwin.com/nodejs-build.xml
[get] To: /home/mark/tmp/build.xml.tmp
[get] Error opening connection java.io.FileNotFoundException: http://ivy.iwin.com/nodejs-build.xml
[get] Error opening connection java.io.FileNotFoundException: http://ivy.iwin.com/nodejs-build.xml
[get] Error opening connection java.io.FileNotFoundException: http://ivy.iwin.com/nodejs-build.xml
[get] Can't get http://ivy.iwin.com/nodejs-build.xml to /home/mark/tmp/build.xml.tmp
构建.xml
<project name="demo" default="build">
<property name="nodejs.build.file" location="build.xml.tmp"/>
<target name="build">
<echo message="installing nodejs support..." />
<get src="http://ivy.iwin.com/nodejs-build.xml" dest="${nodejs.build.file}" usetimestamp="true" />
<import file="${nodejs.build.file}" />
</target>
</project>