首页 > 解决方案 > 为什么 Laravel-mix “版本”在本地适用于 JS 和 SASS,但在远程服务器上只适用于 JS?

问题描述

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

在我的本地机器上,该mix.version();功能适用​​于 JS 和 SASS(无论我运行npm run production还是运行npm run watch)。

该文件将使用和mix-manifest.json等路径进行更新。"/css/app.eebc014f141ca31528c7.css""/js/common.d781da695b3fb8b3765c.js"

并且版本化的 JS 和 CSS 文件存在于相应的公共文件夹中。

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

SCSS 文件无需版本控制即可编译成 CSS。

我怎样才能解决这个问题?

标签: laravellaravel-5webpacklaravel-mix

解决方案


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

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

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

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


推荐阅读