我正在尝试使用npm i --save https://github.com/yagop/node-telegram-bot-api.git
安装this module。
我避免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
,重新安装,没有任何帮助。
答案 0 :(得分:7)
问题是存储库包含.npmignore
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
。