1

我在使用 npm scripts 任务启动browsersync服务器时遇到问题,该服务器会在文件更新后刷新...

一个名为的任务servescripts属性中定义package.json如下:

{
    ...
    "scripts": {
        "serve": "browser-sync start --server \"dev\" --files \"./dev/css/*.css, ./dev/js/*.js, ./dev/*.html\" --browser \"Google Chrome\""
    },
    "devDependencies": {
        "browser-sync": "^2.17.0"
    }
}

我的目录结构如下:

project
│
├── package.json
│
├─── dev
│   │
│   ├───index.html
│   │
│   ├─── css
│   │   │
│   │   └───style.css
│   │
│   └─── js
│       │
│       └───main.js
│
└─── node_modules
    │
    ├───browser-sync
    │
    ├───browser-sync-client
    │
    ├───browser-sync-ui
    │
    └─── ...

当我cdproject目录并键入服务器正确启动时,在Chrome 浏览器中npm run serve打开。browsersyncindex.htmlhttp://localhost:3000/

如果我随后编辑index.htmlstyle.cssmain.js并保存更改,则browsersync不会自动刷新以在浏览器中反映这些更改。

有趣的是,在我直接通过 CLI 运行相同的命令(即与在package.json不转义双引号的情况下指定的相同)后,如下所示:

$ browser-sync start --server "dev" --files "./dev/css/*.css, ./dev/js/*.js, ./dev/*.html" --browser "Google Chrome"

...浏览器正确打开index.html并在编辑保存更改后index.html正确style.cssmain.js browsersync刷新浏览器。

browsersync我在全局和本地(即在项目文件夹中)安装的版本是相同的版本(2.17.0)。

我在脚本部分做错了package.json什么吗?

4

1 回答 1

0

我今天也遇到了同样的问题,我想建立一个简单的文件来做测试。

它对我有用的方式是删除转义字符并直接添加路线:

例子:

 .....
 "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "browser-sync start --server --files ./**/*",
  }
 .....

我正在提供当前文件夹中的所有文件

在这里,我知道 npm 如何使用命令中的路径

于 2017-04-19T19:31:37.523 回答