2016-11-12 350 views
4

我正在尝试安装this modulenpm i --save https://github.com/yagop/node-telegram-bot-api.gitnpm install上缺少目录和文件

我避免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 cleanrm -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 

Upd。:(imho)在这种情况下,适当地使用私人注册模块。例如sinopia

+0

谢谢!这说得通。顺便说一句,你为什么认为这是适当的使用私人注册表?你能澄清吗?谢谢 –

+0

@RomanPushkin因为在这种情况下,你可以通过git仓库透明地自动执行更新包。并且不要等待来自'npmjs.com'的升级包。 –