使用npm脚本的browsersync任务在文件更改后不刷新浏览器

时间:2016-10-07 16:30:16

标签: npm browser-sync build-tools npm-scripts

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

serve的{​​{1}}属性中定义了名为scripts的任务,如下所示:

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 │ └─── ... cd目录并输入project npm run serve服务器正确启动时,通过Chrome中的browsersync打开index.html浏览器。

如果我然后编辑http://localhost:3000/index.htmlstyle.css并保存更改main.js,请勿自动刷新以反映浏览器中的这些更改。

有趣的是,在我通过CLI直接通过CLI运行相同的命令(即与browsersync中指定的相同而不转义双引号)之后:

package.json

...浏览器正确打开$ browser-sync start --server "dev" --files "./dev/css/*.css, ./dev/js/*.js, ./dev/*.html" --browser "Google Chrome",编辑后保存对index.htmlindex.htmlstyle.css main.js的更改,目前正在刷新浏览器

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

我在browsersync的脚本部分做错了吗?

1 个答案:

答案 0 :(得分:0)

我今天遇到了同样的问题,我想设置一个简单的文件进行测试。

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

示例:

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

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

Here I am aware of how npm uses the paths inside the commands