从 Package.json 脚本运行 BrowserSync 时出错

Mos*_*she 6 node.js express browser-sync package.json npm-scripts

我已经设置了浏览器同步来使用 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"
  }
}

Run Code Online (Sandbox Code Playgroud)

这是错误消息:

 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)
Run Code Online (Sandbox Code Playgroud)

知道这条消息是关于什么的,我该如何解决?

谢谢。

Gri*_*ris 1

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

节点版本:

~$ node -v
v10.13.0
Run Code Online (Sandbox Code Playgroud)

Npm 版本:

~$ npm -v
6.4.1
Run Code Online (Sandbox Code Playgroud)

然后我跑去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]
Run Code Online (Sandbox Code Playgroud)

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