2016-11-12 2 views
4

Я пытаюсь установить this module с npm i --save https://github.com/yagop/node-telegram-bot-api.git.Отсутствующие каталоги и файлы на установке npm

Причина, по которой я избегаю npm i --save node-telegram-bot-api, заключается в том, что мне нужны некоторые недавно добавленные методы (например, sendContact).

Когда я устанавливаю, он добавил к моему package.json, как и ожидалось:

"node-telegram-bot-api": "git+https://github.com/yagop/node-telegram-bot-api.git", 

Но когда я пытаюсь запустить приложение, которое использует этот модуль он говорит:

Error: Cannot find module './src/telegram' 

После ковыряться немного бит, оказалось, что отсутствует src и некоторые другие каталоги. Вот tree:

$ tree ./node_modules/node-telegram-bot-api 
./node_modules/node-telegram-bot-api 
├── CONTRIBUTING.md 
├── index.js 
├── LICENSE.md 
├── node_modules 
(second one is skipped) 
├── package.json 
├── README.hbs 
└── README.md 

Почему? И как я могу это исправить?

Я пытался использовать npm cache clean и rm -rf ./node_modules/node-telegram-bot-api, переустанавливая, ничего не помогает.

ответ

5

Проблема заключается в том, что хранилище содержит .nmpignore file и следующие файлы и каталоги игнорируются во время установки:

# lcov 
coverage/ 
*.log 
.package.json 

# artifacts & source 
README.hbs 
output.md 
output/ 
src/ 
test/ 
examples/ 
lib-doc/ 

# dotfiles 
.travis.yml 
.eslintrc 
.eslintignore 
.editorconfig 
.babelrc 
.gitignore 
.git 

Так что, если вы хотите использовать последнюю версию из репозитория, вам необходимо скачать и установить это вручную. Например:

cd ./node_modules 
git clone https://github.com/yagop/node-telegram-bot-api 
cd ./node_modules/node-telegram-bot-api 
npm install 

Обновление.: (imho) в этом случае правильно использовать частный реестр для модулей. Например, sinopia.

+0

спасибо! Это имеет смысл. Кстати, почему вы считаете правильным использовать частный реестр? Можете ли вы прояснить, пожалуйста? Спасибо –

+0

@RomanPushkin Потому что в этом случае вы можете прозрачно автоматизировать пакет обновления из репозитория git. И не ждите, когда пакет обновления с 'npmjs.com'. –