【问题标题】:BrowserSync: command not found after installing locallyBrowserSync:本地安装后找不到命令
【发布时间】:2019-04-07 17:18:33
【问题描述】:

我为我的节点应用程序运行了以下命令:

$ npm install browser-sync --save-dev

安装成功,browser-sync 出现在我的package.json 文件以及我的node_modules 目录中。

但是,当我运行 $ browser-sync --version 以检查它是否正常工作时,我收到以下错误:

bash:浏览器同步:找不到命令

为什么这不起作用?

注意:这个question 类似,但我不想像这个问题那样在全局范围内安装它。

任何帮助将不胜感激!

【问题讨论】:

    标签: node.js npm browser-sync


    【解决方案1】:

    这是因为您尝试在本地使用通常全局安装的模块全局安装的模块最终会出现在您的 PATH 环境变量中,这就是为什么您可以在尝试时从终端运行它们:

    $ browser-sync --version
    

    如果您想从本地安装中使用 browser-sync 模块,您必须在您的 .bin 目录中添加到 browser-sync 二进制文件的完整路径,因为所有本地安装的模块被放置在您当前的工作目录node_modules 目录中。即节点模块进入./node_modules,可执行文件进入./node_modules/.bin/。因此,为了从本地安装运行 browser-sync 二进制文件,请执行以下操作:

    ./node_modules/.bin/browser-sync  --version
    

    希望对您有所帮助!

    【讨论】:

    • 谢谢,这帮助我解决了我的问题。从项目文件夹运行“./node_modules/.bin/browser-sync --version”是解决方法。
    【解决方案2】:

    如果您使用npm --savenpm --save-dev 安装了浏览器同步,您可以通过在 package.json 中编写脚本来运行它。这是我添加的脚本示例:

    {
    ...
    "scripts": {
        "dev-server": "browser-sync start --server 'public' --files 'public'"
      },
    ...
    }
    

    您可以像这样从项目的根目录运行脚本

    npm run dev-server
    

    这将运行脚本中设置为dev-server 的任何命令。在这种情况下,它将在名为/public 的文件夹中为应用程序/站点运行浏览器同步,并监视/public 文件夹中的任何文件更改。我知道这个问题有点老了,但没有得到解答,希望我以后可以节省一些时间。

    【讨论】:

    • 这对我有用!这个问题的答案真的很脱节,所以我很高兴这有效。唯一要提到的是,我创建了一个名为 public 的文件夹并将 index.html 和 css 文件夹放在那里。我不知道没有它是否可行,否则效果很好。
    • 更具体地说,我只将 index.html 文件放在 public 文件夹中,因为我有另一个 watch/build runner,它不喜欢我把 CSS 文件夹放在公用文件夹。
    猜你喜欢
    • 2016-05-31
    • 2013-03-28
    • 2016-11-04
    • 2022-01-12
    • 2018-06-17
    • 2014-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多