You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

npm-watch仅运行一次即退出 无法持续监听文件变更问题

问题根因

你的配置存在两个核心错误,导致文件监听逻辑根本没有启动:

  1. scripts下的watch命令直接写的是node-sass单次编译指令,根本没有调用npm-watch本身。执行npm run watch时只会跑一次scss编译,编译完成进程自然就退出了,完全没有启动驻留的文件监听进程。
  2. 顶层watch字段的配置格式不符合npm-watch的规则:npm-watch不会直接读取全局的patterns/extensions配置,需要以你要触发的脚本名称作为键,单独给每个待触发任务配置监听规则。
修复方案

调整package.json的脚本和watch配置即可,修正后的配置参考:

{
  "name": "limitless",
  "version": "1.0.0",
  "main": "index.js",
  "dependencies": {
    "autoprefixer": "^10.2.5"
  },
  "devDependencies": {
    "jshint": "^2.10.3",
    "node": "14.16.0",
    "node-sass": "^5.0.0",
    "npm-watch": "^0.11.0",
    "uglify-js": "^3.16.1",
    "uglifycss": "^0.0.29"
  },
  "watch": {
    "build:css": {
      "patterns": ["www/scss"],
      "extensions": ["scss"],
      "delay": "2000"
    }
  },
  "scripts": {
    "build:css": "node-sass www/scss/theme.scss www/css/theme.css",
    "watch": "npm-watch"
  }
}

调整后重新执行npm run watch,首次会自动跑一次build:css完成编译,之后进程会持续驻留,监听目录下的scss文件变更时会自动重新触发编译。

补充说明:如果你不需要启动watch时自动执行一次编译,可以在对应任务的watch配置里添加"runOnLaunch": false参数。

内容的提问来源于stack exchange,提问作者Čamo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 23:39:26