本地安装Bower出现问题

5
我在项目中本地安装了Bower,创建了一个名为“node_modules”的文件夹和一个名为“bower”的子文件夹。然后我在命令行上运行了Bower:
$ bower
bower: команда не найдена (command not found)

为什么会这样?如果我全局安装bower,一切都正常工作。

1
如果您全局安装了Bower,您将能够使用bower命令。虽然您也可以这样使用本地安装的Bower:./node_modules/bower/bin/bower install - Jason
使用 npm install -g bower 全局安装它。 - Bojangles
1个回答

8

如何安装Bower(来自文档):

npm install -g bower

重要的部分是-g标志,因为它告诉npm将其“全局”安装。这意味着npm将在您的Node.js二进制文件夹中创建一个symlink到bower二进制文件*。这允许您的shell(无论是Bash、zsh、csh等)找到该命令。
如果您运行npm install bower,为什么不起作用?
只运行npm install bower会将给定的软件包安装到node_modules/{package}下的当前文件夹中。如果您这样做并尝试从命令行运行bower,您的shell将不知道在哪里找到bower命令,因为它不在您的PATH中(因此出现“找不到命令”的错误)。
正如@Jason在评论中指出的那样,您可以通过运行./node_modules/bower/bin/bower来显式运行bower二进制文件*。像这样运行时,您的shell将知道在哪里找到该命令。如果需要,您可以将其别名为更短的名称:
alias bower="./node_modules/bower/bin/bower"

* 我在这里非常宽泛地使用“二进制”一词。实际上,它更像是一个带有shebang的可执行文件。


奇怪的是,当我执行这些指令时,会出现以下错误:bower EINVALID The name has to end with a lower case character from a to z编辑:为了解决这个问题,我只需要一个包含至少填写了“必需”字段的bower.json文件。 - Con Antonakos

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接