Rails,build:css 脚本中的多个 css 输出阻止 --watch 工作

Rails, multiple css outputs in build:css script prevents --watch from working

使用 Rails 7,如果我的 build:css 脚本在 package.json 中有多个输出,--watch` 不再有效,我如何输出多个文件并仍然启用文件更改后重建 css 的脚本?

例如,这有效:

"build:css": "sass ./app/assets/stylesheets/application.sass.scss ./app/assets/builds/application.css --no-source-map --load-path=node_modules && sass ./app/assets/stylesheets/active_admin.sass.scss ./app/assets/builds/active_admin.css --no-source-map --load-path=node_modules"

而如果我删除 && 以及后面的所有内容,如下所示:

"build:css": "sass ./app/assets/stylesheets/application.sass.scss ./app/assets/builds/application.css --no-source-map --load-path=node_modules"

工作,并且观察文件的变化和重建,我做错了什么?

因为 --watch 标志只是附加到 build:css 命令,它最终会执行这个

sass ... && sass ... --watch

它编译 application.scss 然后监视 admin.scss

这是正确的语法:

https://sass-lang.com/documentation/cli/dart-sass#many-to-many-mode

sass [<input.css>:<output.css>] [<input/>:<output/>]...
"build:css": "sass ./app/assets/stylesheets/application.sass.scss:./app/assets/builds/application.css ./app/assets/stylesheets/active_admin.sass.scss:./app/assets/builds/active_admin.css --no-source-map --load-path=node_modules"