如何从裸git repo文件夹安装npm模块?
所以我有一个包含git repo的文件夹。它是使用创建的git init --bare。现在我想让npm获取master分支的最新版本,并且有package.json文件可用。
什么是正确的方法?
我尝试了类似的东西:
npm install git+file:///W:/my/git/repo/ -g
npm install git+file:///W:/my/git/repo/#master -g
npm install file:///W:/my/git/repo/ -g --from-git
Run Code Online (Sandbox Code Playgroud)
可能吗?
npm日志:
0 info it worked if it ends with ok
1 verbose cli [ 'C:\\Program Files\\nodejs\\\\node.exe',
1 verbose cli 'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js',
1 verbose cli 'install',
1 verbose cli 'file:///W:/my/git/repo/',
1 verbose cli '-g',
1 verbose cli '--from-git' ]
2 info using npm@1.4.14
3 info using node@v0.10.29
4 verbose node symlink C:\Program Files\nodejs\\node.exe
5 verbose cache add [ 'file:///W:/my/git/repo/', null ]
6 verbose cache add name=undefined spec="file:///W:/my/git/repo/" args=["file:///W:/my/git/repo/",null]
7 verbose parsed url { protocol: 'file:',
7 verbose parsed url slashes: true,
7 verbose parsed url auth: null,
7 verbose parsed url host: '',
7 verbose parsed url port: null,
7 verbose parsed url hostname: '',
7 verbose parsed url hash: null,
7 verbose parsed url search: null,
7 verbose parsed url query: null,
7 verbose parsed url pathname: '/W:/my/git/repo/',
7 verbose parsed url path: '/W:/my/git/repo/',
7 verbose parsed url href: 'file:///W:/my/git/repo/' }
8 silly lockFile cc42952a--W-my-git-repo file:///W:/my/git/repo/
9 verbose lock file:///W:/my/git/repo/ C:\Users\myusername\AppData\Roaming\npm-cache\cc42952a--W-my-git-repo.lock
10 silly lockFile cc42952a--W-my-git-repo file:///W:/my/git/repo/
11 silly lockFile cc42952a--W-my-git-repo file:///W:/my/git/repo/
12 error addLocal Could not install file:///W:/my/git/repo/
13 error Error: ENOENT, stat 'C:\test\file:\W:\my\git\repo'
14 error If you need help, you may report this *entire* log,
14 error including the npm and node versions, at:
14 error <http://github.com/npm/npm/issues>
15 error System Windows_NT 6.2.9200
16 error command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "file:///W:/my/git/repo/" "-g" "--from-git"
17 error cwd C:\test
18 error node -v v0.10.29
19 error npm -v 1.4.14
20 error path C:\test\file:\W:\my\git\repo
21 error code ENOENT
22 error errno 34
23 verbose exit [ 34, true ]
Run Code Online (Sandbox Code Playgroud)
我有一个古怪的答案,这可能比没有答案要好。使用Git的URL重写功能:
git config --global url.file://.insteadOf git+file://
npm install git+file:///c:\dev\code\mymod
Run Code Online (Sandbox Code Playgroud)
它会生成有关无法获取遥控器等的警告,但它会安装模块并npm以成功代码退出。
这是有效的,因为git+前缀使 NPM 将整个路径传递给 Git,然后 URL 重写规则将git+file://(无效的 Git 协议字符串)变成file://(有效的 Git 协议字符串)。
Met*_*ean -4
根据https://docs.npmjs.com/files/package.json#git-urls-as-dependency
Git URL 作为依赖项
Git url 可以采用以下形式:
git://github.com/user/project.git#commit-ish
git+ssh://user@hostname:project.git#commit-ish
git+ssh://user@hostname/project.git#commit-ish
git+http://user@hostname/project/blah.git#commit-ish
git+https://user@hostname/project/blah.git#commit-ish
Run Code Online (Sandbox Code Playgroud)
commit-ish 可以是任何可以作为参数提供给 git checkout 的标签、sha 或分支。默认为主。
该文档专门针对该package.json文件,但您也可以执行以下操作
npm install git://github.com/user/project.git#develop_branch:
| 归档时间: |
|
| 查看次数: |
2692 次 |
| 最近记录: |