在npm install上缺少目录和文件

时间:2016-11-12 06:49:05

标签: node.js git npm telegram

我正在尝试使用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 cleanrm -rf ./node_modules/node-telegram-bot-api,重新安装,没有任何帮助。

1 个答案:

答案 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