我在项目中本地安装了bower,在其中创建了一个文件夹"node_modules"one_answers"bower"。然后我在命令行上运行bower:
$ bower
bower: команда не найдена (command not found)
为什么会这样?如果我在全球范围内安装bower,一切都能正常工作。
如何安装Bower(从文档):
npm install -g bower
重要的部分是-g
标志,因为它通知npm"全局"安装它。这意味着npm将在Node.js二进制文件文件夹(位于PATH
中)中创建一个指向bower二进制文件*的符号链接。这允许您的shell(无论是Bash、zsh、csh等)查找命令。
如果运行npm install bower
,为什么它不起作用
仅运行npm install bower
即可将给定的包安装到node_modules/{package}
下的当前文件夹中。如果您这样做并尝试从命令行运行bower
,您的shell将不知道在哪里可以找到bower
命令,因为它不在PATH
中(因此会出现"commandnotfound"错误)。
正如@Jason在评论中指出的,您可以通过运行./node_modules/bower/bin/bower
显式地运行bower二进制文件*。当这样运行时,您的shell将知道在哪里可以找到命令。如果需要,您可以将其别名为较短的名称:
alias bower="./node_modules/bower/bin/bower"
*我使用二进制这个词非常松散。它更像是一个标记为可执行的文件,上面有一个shebang