本地安装凉亭的麻烦

yio*_*xir 5 javascript node.js bower

我在项目中本地安装了bower,在其中创建了一个文件夹'node_modules'和'bower'.然后我在命令行上运行bower:

$ bower
bower: ??????? ?? ??????? (command not found)
Run Code Online (Sandbox Code Playgroud)

为什么是这样?如果我安装bower全局一切正常.

Why*_*rrh 8

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

npm install -g bower
Run Code Online (Sandbox Code Playgroud)

重要的部分是-g标志,因为它通知npm"全局"安装它.这意味着npm将为Node.js二进制文件夹(位于您的)中的bower binary *创建一个符号链接.这允许你的shell(无论是Bash,zsh,csh等)来查找命令.PATH

如果跑步,为什么它不起作用npm install bower

刚刚运行npm install bower将给定的包安装到当前文件夹下node_modules/{package}.如果你这样做并尝试bower从命令行运行,你的shell将不知道在哪里找到bower命令,因为它不在你的PATH(因此"命令未找到"错误).

正如@Jason在评论中指出的那样,您可以通过运行显式运行bower binary *./node_modules/bower/bin/bower.当像这样运行时,shell将知道在哪里找到命令.如果需要,您可以将其替换为更短的内容:

alias bower="./node_modules/bower/bin/bower"
Run Code Online (Sandbox Code Playgroud)

*我非常宽松地使用二进制这个词.它更像是一个标记为可执行文件,上面有一个shebang.