【问题标题】:Error When Running BrowserSync from Package.json Scripts从 Package.json 脚本运行 BrowserSync 时出错
【发布时间】:2020-11-08 20:39:01
【问题描述】:

我已设置 Browser Sync 以使用 nodemon 和 express。我使用 gulp 或 grunt,而是通过我的 package.json 文件中的 npm 脚本运行所有内容。

现在,一切正常,但我在运行脚本时遇到错误,我想知道错误是什么以及如何修复它。

首先,这是我的设置:

{
  "scripts": {
    "dev": "npm run development",
    "dev:css": "postcss assets/css/style.css -o public/assets/css/style.css",
    "dev:sync": "browser-sync start --proxy 'localhost:3000' --files='./views/**/*.html' --no-ui --no-notify",
    "development": "cross-env NODE_ENV=development concurrently \"npm:dev:css\" \"nodemon app.js -e js,html\" \"npm:dev:sync\"",
  },
  "dependencies": {
    "concurrently": "^5.2.0",
    "express": "^4.17.1"
  },
  "devDependencies": {
    "browser-sync": "^2.26.10",
    "cross-env": "^7.0.2"
  }
}

这是错误信息:

 YError: Invalid first argument. Expected boolean or string but received function.
[dev:sync]     at argumentTypeError (C:\laragon\www\projects\startup-reporter--node\node_modules\yargs\build\lib\argsert.js:64:11)
[dev:sync]     at C:\laragon\www\projects\startup-reporter--node\node_modules\yargs\build\lib\argsert.js:45:17
[dev:sync]     at Array.forEach (<anonymous>)
[dev:sync]     at Object.argsert (C:\laragon\www\projects\startup-reporter--node\node_modules\yargs\build\lib\argsert.js:38:25)
[dev:sync]     at Object.version (C:\laragon\www\projects\startup-reporter--node\node_modules\yargs\build\lib\yargs.js:796:19)
[dev:sync]     at runFromCli (C:\laragon\www\projects\startup-reporter--node\node_modules\browser-sync\dist\bin.js:46:10)
[dev:sync]     at Object.<anonymous> (C:\laragon\www\projects\startup-reporter--node\node_modules\browser-sync\dist\bin.js:38:5)
[dev:sync]     at Module._compile (internal/modules/cjs/loader.js:776:30)
[dev:sync]     at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)
[dev:sync]     at Module.load (internal/modules/cjs/loader.js:643:32)

知道这条消息是关于什么的以及如何修复它吗?

谢谢。

【问题讨论】:

    标签: node.js express package.json browser-sync npm-scripts


    【解决方案1】:

    这里的回购中有一个问题:https://github.com/BrowserSync/browser-sync/issues/1782

    在团队解决问题之前,降级可能是一种解决方法。 npm -g install browser-sync@2.26.7。我刚刚确认这确实消除了警告。

    还注意到这不是错误,而是警告,因此包将按预期工作,但控制台输出会混乱。

    【讨论】:

    • 暂时降级。谢谢
    【解决方案2】:

    我在我的 linux 机器上通过 sudo npm install -g browser-sync 安装了浏览器同步,我得到了完全相同的错误。

    节点版本:

    ~$ node -v
    v10.13.0
    

    Npm 版本:

    ~$ npm -v
    6.4.1
    

    然后我运行browser-sync --version 得到:

    YError: Invalid first argument. Expected boolean or string but received function.
        at argumentTypeError (/usr/local/lib/node_modules/browser-sync/node_modules/yargs/build/lib/argsert.js:64:11)
        at parsed.optional.forEach (/usr/local/lib/node_modules/browser-sync/node_modules/yargs/build/lib/argsert.js:45:17)
        at Array.forEach (<anonymous>)
        at Object.argsert (/usr/local/lib/node_modules/browser-sync/node_modules/yargs/build/lib/argsert.js:38:25)
        at Object.version (/usr/local/lib/node_modules/browser-sync/node_modules/yargs/build/lib/yargs.js:796:19)
        at runFromCli (/usr/local/lib/node_modules/browser-sync/dist/bin.js:46:10)
        at Object.<anonymous> (/usr/local/lib/node_modules/browser-sync/dist/bin.js:38:5)
        at Module._compile (internal/modules/cjs/loader.js:688:30)
        at Object.Module._extensions..js (internal/modules/cjs/loader.js:699:10)
        at Module.load (internal/modules/cjs/loader.js:598:32)
    [Function]
    

    虽然我是 npm 的初学者,但这似乎不是权限问题

    【讨论】:

      【解决方案3】:

      我在 Windows 上遇到了同样的错误,我尝试按照文档安装 Visual Studio 来修复一些 c+ 问题并重新安装,但它一直出现相同的错误,当我在全局安装时它工作正常,但如果我安装在单个项目它甚至无法识别浏览器同步版本提示,我尝试更新 npm 和节点,问题仍然存在,但我注意到当我安装 node-sass 之类的东西时,我遇到了以前没有的相同问题,所以我猜这个问题与 npm 的一些全局配置有关,我重新安装了它,仍然没有,所以肯定是其他的东西与之冲突,今天我要试试 yarn,看看会发生什么。

      提示 npm list --depth 0 会得到什么

      https://gist.github.com/soyrbto/5bc81049780baab3f3c4211c0b7548bd

      这发生在我身上,我想检查一下我们是否有同样的问题

      【讨论】:

      • 我在运行npm list --depth 0时没有收到任何错误
      【解决方案4】:

      我找到了答案,我使用这个从地面卸载节点 How to completely remove node.js from Windows 并重新安装它(如果你想像巧克力一样安装额外的组件,你必须安装 Visual Studio 2017,否则你会看到一个错误)

      在我重新安装它之后,我设法再次安装并开始使用这些软件包,似乎这是一个不会消失的冲突,除非你手动删除文件夹。

      我还安装了最新版本的节点,我不相信这与它无关,但如果你想完全复制我所做的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-09-02
        • 2017-05-16
        • 1970-01-01
        • 2019-10-06
        • 2017-07-07
        • 1970-01-01
        • 2014-07-23
        • 2016-09-13
        相关资源
        最近更新 更多