为什么 Laravel-mix "version" 在本地适用于 JS 而 SASS 但在远程服务器上仅适用于 JS?

Why does Laravel-mix "version" work locally for JS and SASS but on remote server only works for JS?

我正在使用 "laravel-mix": "^0.10.0",因为更高版本(例如 "laravel-mix": "^2.0")有更多问题(我可能 post 单独提出问题)。

在我的本地机器上,mix.version(); 特性对 JS 和 SASS 都很好(无论我是 运行 npm run production 还是 npm run watch)。

mix-manifest.json 文件更新为 "/css/app.eebc014f141ca31528c7.css""/js/common.d781da695b3fb8b3765c.js".

等路径

版本化的 JS 和 CSS 文件存在于相应的 public 文件夹中。

但是当我 运行 在生产服务器上执行相同的 npm run production 命令时,只有 JS 文件得到版本控制并出现在 /mix-manifest.json.

SCSS 文件在没有版本控制的情况下被编译成 CSS。

我该如何解决这个问题?

升级到 2.0 后这似乎不再是问题

虽然我不知道问题的确切答案,但我能够从 "laravel-mix": "^0.10.0" 升级到 "laravel-mix": "^2.0" 并且(另外,在这个问题的范围之外)将处理事实上,Uglify 选项(例如 drop_console / clearConsole)似乎是拙劣的。

不过,版本控制似乎适用于 JS 和 SASS/SCSS。

而且我注意到 mix-manifest.json 使用查询字符串的新方法(例如 "/css/app.css?id=89fc79b46cdbfdc944d4")而不是更改文件名。