使用git归档作为npm依赖项

使用git归档作为npm依赖项,git,node.js,npm,Git,Node.js,Npm,使用npm,您可以使用指向包含节点模块的gzip tarball的URL声明依赖项。我通过在OSX终端中运行tar命令实现了这一点。但是我更愿意使用git归档,这样输出就不会包含.git内容和被repo node_模块忽略的内容 我创建归档文件的方式如下: git archive master | gzip>。/archive.tar.gz 但是,当我尝试使用npm npm install archive.tar.gz安装它或将其放入package.json时,它失败了,出现以下错误: npm

使用npm,您可以使用指向包含节点模块的gzip tarball的URL声明依赖项。我通过在OSX终端中运行tar命令实现了这一点。但是我更愿意使用git归档,这样输出就不会包含.git内容和被repo node_模块忽略的内容

我创建归档文件的方式如下:

git archive master | gzip>。/archive.tar.gz

但是,当我尝试使用npm npm install archive.tar.gz安装它或将其放入package.json时,它失败了,出现以下错误:

npm ERR! couldn't unpack /var/folders/gc/6rgb6g4x0n96nc1scbvv87040000gn/T/npm-1329949280846/1329949280846-0.19062370574101806/tmp.tgz to /var/folders/gc/6rgb6g4x0n96nc1scbvv87040000gn/T/npm-1329949280846/1329949280846-0.19062370574101806
npm ERR! Could not install: /javascript/archive.tar.gz
npm ERR! Error: ENOTDIR, not a directory '/var/folders/gc/6rgb6g4x0n96nc1scbvv87040000gn/T/npm-1329949280846/1329949280846-0.19062370574101806/package/package.json'
npm ERR! Report this *entire* log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>
npm ERR! 
npm ERR! System Darwin 11.3.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "/javascript/archive.tar.gz"
npm ERR! cwd /Users/dave
npm ERR! node -v v0.6.11
npm ERR! npm -v 1.1.0-beta-10
npm ERR! path /var/folders/gc/6rgb6g4x0n96nc1scbvv87040000gn/T/npm-1329949280846/1329949280846-0.19062370574101806/package/package.json
npm ERR! code ENOTDIR
npm ERR! message ENOTDIR, not a directory '/var/folders/gc/6rgb6g4x0n96nc1scbvv87040000gn/T/npm-1329949280846/1329949280846-0.19062370574101806/package/package.json'
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/dave/npm-debug.log

你知道git归档文件和常规tar之间有什么不同,会导致npm安装失败吗?

虽然正如评论中提到的,归档文件的格式可能会在这个问题上发挥作用,但我也会再次检查这是否与npm必须处理的参数中的长度问题无关。 请看5个月前的这篇文章,这篇文章是针对Windows的,但是如果这条路真的很长的话,它仍然会对您的环境产生影响


另请参见,其中tar的版本与中的npm不兼容,在Mac上也是如此。

您在git archive中省略了-format=tar选项;有可能它创建了一个zip吗?tar是默认值,但是我尝试了explicit-format=tar,同样的效果。不过,这是一个很好的尝试建议。可能就是这样的。我会把它发布在npm网站上,看看它是否真的是一个npm错误。谢谢你的帮助。