В моем файле webpack.mix.js (Laravel Mix v2.1.14) есть следующая конфигурация:
mix.sass('resources/assets/test.scss', 'public/dist/css')
.js('resources/assets/js/app.js', 'public/dist/js')
.version();
Если я опущу функцию «version ()», файл «app.js» будет выглядеть правильно, но как только я добавлю функцию «version ()», в приложение будет добавлена ссылка на файл «test.scss». js следующим образом:
/***/ "./resources/assets/test.scss":
/***/ (function(module, exports) {
// removed by extract-text-webpack-plugin
/***/ }),
/***/ 0:
/***/ (function(module, exports, __webpack_require__) {
__webpack_require__("./resources/assets/js/app.js");
module.exports = __webpack_require__("./resources/assets/test.scss");
Это происходит с каждым дополнительным файлом scss, который я анализирую. Кто-нибудь знает, почему файл scss добавляется в мой файл js?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Он будет удален после запуска npm run production, но похоже, что он может быть добавлен задачей «Версия», когда она включает NamedModulesPlugin?
https://github.com/JeffreyWay/laravel-mix/blob/21e6742/src/components/Version.js#L41
После некоторого дополнительного исследования кажется, что это все-таки не связано с управлением версиями. Если я отключу управление версиями, пустые функции все еще будут присутствовать, но в другом формате: /* 2 */ /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ })
Я думаю, это все еще объясняет, почему version () заставляет имя файла отображаться
Я пробовал это в производственном режиме, влияние лишнего кода немного минимизировано, но он все еще присутствует (как пустая функция). Например
mOet: function(n, t) {},. «NamedModulesPlugin», кажется, влияет только на значение параметра (полное имя или хеш).