npm, кажется, игнорирует мой приватный модуль и 404 против публичного реестра
Возможно, кто-то видел это раньше... У меня есть закрытый модуль, который я хочу включить в свое приложение. Я упоминал его как tarball на Gemfury, и все отлично работает локально (всегда так) в нескольких версиях библиотеки, но "npm install" на моем окне Joyent выдает ошибку ниже.
Кажется, что NPM успешно вытаскивает модуль, а затем пытается (и не может) найти его в реестре.
Я предполагаю, что я делаю что-то глупое. Есть идеи, что это?
Замечания:
Я также пытался ссылаться на модуль через URL-адрес git в package.json. Кажется, SSH соединяется, поскольку спрашивает, доверяю ли я IP & RSA-отпечатку github.com, но тогда NPM просто снова попадает в реестр и получает 404. Я предполагаю, что это как-то связано с пакетом, но может т воспроизводить локально.
npm http GET https://npm.fury.io/--token--/richmarr/cake-lib/-/latest.tgz
npm http 200 https://npm.fury.io/--token--/richmarr/cake-lib/-/latest.tgz
npm http GET https://registry.npmjs.org/cake-lib/0.0.10
npm http 404 https://registry.npmjs.org/cake-lib/0.0.10
npm ERR! 404 'cake-lib' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it
npm ERR! 404
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, or http url, or git url.
npm ERR! System SunOS 5.11
npm ERR! command "/opt/nodejs/v0.10.21/bin/node" "/home/node/local/nodejs/bin/npm" "install" "https://npm.fury.io/--token--/richmarr/cake-lib/-/latest.tgz"
npm ERR! cwd /home/node/node-service/releases/2013-11-27T22-18-23.324752929
npm ERR! node -v v0.10.21
npm ERR! npm -v 1.3.11
npm ERR! code E404
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /home/node/node-service/releases/2013-11-27T22-18-23.324752929/npm-debug.log
npm ERR! not ok code 0
package.json для приложения это:
{
"name": "application-name",
"version": "0.0.3",
"private": true,
"scripts": {
"start": "node app.js",
"test": "mocha"
},
"dependencies": {
"express": "3.2.1",
"sizlate": "~0.8.3",
"newrelic": "~0.11.0",
"passport": "~0.1.17",
"passport-twitter": "~1.0.2",
"passport-local": "~0.1.6",
"connect-flash": "~0.1.1",
"passport-http": "~0.2.2",
"helmet": "~0.1.0",
"express-validator": "~0.8.0",
"async": "~0.2.9",
"cake-lib": "https://npm.fury.io/--token--/richmarr/cake-lib/-/latest.tgz"
},
"engines": {
"node": "0.10.21"
},
"devDependencies": {
"mocha": "~1.13.0"
}
}
package.json библиотеки:
{
"name": "cake-lib",
"version": "0.0.10",
"private": true,
"description": "Data & connectivity lib",
"main": "index.js",
"scripts": {
"test": "mocha",
"pub": "npm version patch; npm pack; npm run upload",
"upload": "curl -F package=@cake-lib-$npm_package_version.tgz https://push.fury.io/--token--; rm *.tgz"
},
"dependencies": {
"scrypt": "~1.7.3",
"mysql": "~2.0.0-alpha9",
"awssum": "~1.1.1",
"awssum-amazon": "~1.1.1",
"awssum-amazon-ses": "~1.0.0",
"stripe": "~1.3.0",
"async": "~0.2.9",
"apn": "~1.4.2",
"uuid": "~1.4.1"
},
"repository": {
"type": "git",
"url": "git://github.com/richmarr/cake-lib.git"
},
"author": "",
"bugs": {
"url": "https://github.com/richmarr/cake-lib/issues"
},
"devDependencies": {
"mocha": "~1.13.0"
}
}
2 ответа
Это случай плохих настроек по умолчанию. использование npm config
сброс URL реестра:
npm config set registry https://npm.fury.io/
TL;DR
запуститьnpm c delete registry
Если вы не уверены, хотите ли вы запустить приведенную выше команду, запустите ее, чтобы увидеть значение, установленное для реестра . Он распечатает значение ключаregistry
И тогда вы можете решить, хотите ли вы удалить это или нет.
Объяснение:
у меня была та же проблема, когда я указал свой реестр npm по умолчанию на реестр моей компании. Я решил проблему, удалив значение ключа реестра по умолчанию npm, используя приведенную выше команду удаления.
Заметки:
c
в
npm c get registry
сокращение от
config
бежать
npm c
или же
npm config
чтобы увидеть доступные варианты