Версия Laravel Mix () забывает один файл

Я использую Laravel 5.4 и Mix для создания файлов CSS/JS.

Вот мой полный файл webpack.mix.js:

mix
    .webpackConfig({output: {filename: '[name].js', chunkFilename: 'js/[name].[chunkhash].app.js', publicPath: '/'}})
    .js(['resources/assets/js/app.js'], 'public/js')
    .extract(['vue', 'jquery'])
    .sass('resources/assets/sass/app.scss', 'public/css')
    .version();

По какой-то причине фрагменты JS и файлы CSS имеют правильную версию, а мой app.js — нет. Очевидно, это вызывает различные проблемы, связанные с кешем, в моем веб-приложении.

Я попытался :

  • добавление имен файлов в качестве параметров для версии()
  • удаление манифестов

Но не повезло. Любой намек будет принят с благодарностью. Благодарю вас !


person Didier Sampaolo    schedule 07.06.2017    source источник
comment
Можете ли вы попробовать удалить [] из mix.js()?   -  person Ru Chern Chong    schedule 23.06.2017
comment
К сожалению, это ничего не меняет.   -  person Didier Sampaolo    schedule 26.06.2017


Ответы (1)


Оказывается, после обновления Laravel Mix до > 1 (1.0.6) первая строка больше не нужна. Ранее это было необходимо для того, чтобы функция разделения кода веб-пакета добавляла хэши в имена фрагментов (аналогично тому, что делает mix.version()) — это мешало Mix переименовывать мой основной файл app.js.

Удалив эту строку, все работает как положено.

person Didier Sampaolo    schedule 26.06.2017
comment
Плохо, я не просил твою Laravel-Mix версию. Ага, видимо webpackConfig() сейчас не особо нужен. - person Ru Chern Chong; 26.06.2017
comment
Ну, видимо, до сих пор. Когда я удаляю пользовательскую конфигурацию, куски не версионируются. Похоже, будет очень сложно одновременно версионировать фрагменты и основные файлы... - person Didier Sampaolo; 26.06.2017
comment
Проверьте свой файл mix-manifest.json. В нем должны быть хеши, если вы используете mix.version(). Хэширование имен файлов было удалено в v1.0+ - person Ru Chern Chong; 26.06.2017