npm установить из голого git файла repo

Вопрос:

как я могу установить модуль npm из открытой папки git repo?

Поэтому у меня есть папка, содержащая репозиторий git. Он был создан с помощью git init --bare. Теперь я хочу, чтобы npm извлекал последнюю версию основной ветки, и там доступен файл 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

Возможно ли это?

Журнал 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 [email protected]
3 info using [email protected]
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 ]

Ответ №1

У меня есть хакерский ответ, который может быть лучше, чем вообще никакого ответа. Используйте функцию перезаписи URL-адресов Git:

git config --global url.file://.insteadOf git+file://
npm install git+file:///c:\dev\code\mymod

Он генерирует предупреждения о невозможности получения удаленных точек и т.д., Но он устанавливает модуль и npm выходит с кодом успеха.

Это работает, потому что префикс git+ заставляет NPM передавать весь путь в Git, а затем правило перезаписи URL превращает git+file:// (недопустимая строка протокола Git) в file:// (действительная строка протокола Git),

Ответ №2

за https://docs.npmjs.com/files/package.json#git-urls-as-dependencies

Git URL-адреса в качестве зависимостей

Git URL могут иметь вид:

git://github.com/user/project.git#commit-ish
git+ssh://[email protected]:project.git#commit-ish
git+ssh://[email protected]/project.git#commit-ish
git+http://[email protected]/project/blah.git#commit-ish
git+https://[email protected]/project/blah.git#commit-ish

Commit-ish может быть любым тегом, ша или ветвью, который может быть предоставлен в качестве аргумента для git checkout. По умолчанию используется мастер.

Документация предназначена специально для файла package.json, но вы также можете делать такие вещи, как:
npm install git://github.com/user/project.git#develop_branch.

Оцените статью
TechArks.Ru
Добавить комментарий