2016-11-12 6 views
4

Ich versuche this module mit npm i --save https://github.com/yagop/node-telegram-bot-api.git zu installieren.Fehlende Verzeichnisse und Dateien auf Npm installieren

Der Grund, warum ich npm i --save node-telegram-bot-api vermeiden, ist, dass ich einige kürzlich hinzugefügte Methoden (wie sendContact) brauche.

Wenn ich installieren, ist es meiner package.json hinzugefügt wie erwartet:

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

Aber wenn ich versuche App auszuführen, die dieses Modul nutzt das sagt:

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

Nach ein wenig um Stossen Es stellte sich heraus, dass src und einige andere Verzeichnisse fehlen. Hier ist tree Ausgabe:

$ 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 

Warum? Und wie kann ich es reparieren?

Ich habe versucht, npm cache clean und rm -rf ./node_modules/node-telegram-bot-api, Neuinstallation, nichts hilft.

Antwort

5

Das Problem ist, dass das Repository enthält .nmpignore file und die folgenden Dateien und Verzeichnisse werden während der Installation ignoriert:

# 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 

Also, wenn Sie die neueste Version aus dem Repository verwenden möchten, müssen Sie es herunterladen und installieren es manuell. Wie folgt aus:

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

Upd.: (imho) es ist in diesem Fall richtig, eine private Registrierung für Module zu verwenden. Zum Beispiel sinopia.

+0

danke! Es macht Sinn. Übrigens, warum denkst du, ist es richtig private Registry zu benutzen? Kannst du bitte klären? Danke –

+0

@RomanPushkin Weil in diesem Fall das Update-Paket transparent vom Git-Repository automatisiert werden kann. Und warten Sie nicht auf das Upgrade-Paket von 'npmjs.com'. –

Verwandte Themen