yio*_*xir 5 javascript node.js bower
我在项目中本地安装了bower,在其中创建了一个文件夹'node_modules'和'bower'.然后我在命令行上运行bower:
$ bower
bower: ??????? ?? ??????? (command not found)
Run Code Online (Sandbox Code Playgroud)
为什么是这样?如果我安装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.