在npm install上缺少目录和文件

Rom*_*kin 5 git node.js npm telegram

我试图安装该模块npm i --save https://github.com/yagop/node-telegram-bot-api.git.

我避免的原因npm i --save node-telegram-bot-api是我需要一些最近添加的方法(比如sendContact).

当我安装时,它package.json按预期添加到我的:

"node-telegram-bot-api": "git+https://github.com/yagop/node-telegram-bot-api.git",
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试运行使用此模块的应用程序时,它说:

Error: Cannot find module './src/telegram'
Run Code Online (Sandbox Code Playgroud)

稍微戳了一下之后,结果发现有丢失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
Run Code Online (Sandbox Code Playgroud)

为什么?我该如何解决?

我试图npm cache cleanrm -rf ./node_modules/node-telegram-bot-api,重新安装,没有什么帮助.

std*_*b-- 8

问题是存储库包含.npmignore文件,安装期间将忽略以下文件和目录:

# 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
Run Code Online (Sandbox Code Playgroud)

因此,如果要使用存储库中的最新版本,则需要下载并手动安装.像那样:

cd ./node_modules
git clone https://github.com/yagop/node-telegram-bot-api
cd ./node_modules/node-telegram-bot-api
npm install
Run Code Online (Sandbox Code Playgroud)

UPD.:( imho)在这种情况下,对模块使用私有注册表是正确的.例如sinopia.