我为我的节点应用运行了以下命令:
$ npm install browser-sync --save-dev
安装成功,browser-sync
出现在我的package.json
文件以及我的node_modules
目录中。
但是,当我运行$ browser-sync --version
检查它是否正常工作时,我收到以下错误:
bash:找不到browser-sync:命令
为什么这不起作用?
注意:这个question是类似的,但我不想像在这个问题中那样全局安装它。
任何帮助将不胜感激!
如果您使用npm --save
或npm --save-dev
安装了browser-sync,则可以通过在package.json中编写脚本来运行它。这是我添加的脚本示例:
{
...
"scripts": {
"dev-server": "browser-sync start --server 'public' --files 'public'"
},
...
}
您可以像这样从项目的根目录运行脚本
npm run dev-server
这将运行脚本中设置为dev-server
的任何命令。在这种情况下,它将在名为/public
的文件夹中为app / site运行浏览器同步,并监视/public
文件夹中的任何文件更改。我知道这个问题有点陈旧但是没有答案,希望我能在将来节省一些时间。
这是因为您尝试在本地使用通常全局安装的模块。全局安装的模块最终会出现在PATH
环境变量中,这就是为什么你可以在终端尝试运行它们的原因:
$ browser-sync --version
如果要在本地安装中使用browser-sync
模块,则必须在browser-sync
目录中添加.bin
二进制文件的完整路径,因为所有本地安装的模块都放在当前工作目录node_modules
目录中。即节点模块进入./node_modules
,可执行文件进入./node_modules/.bin/
。因此,为了从本地安装运行browser-sync
二进制文件,请执行以下操作:
./node_modules/.bin/browser-sync --version
希望这有帮助!