Symfony 4 & encore autorefresh не работает, мне всегда приходится перезагружать мой браузер вручную - PullRequest
0 голосов
/ 29 сентября 2018

Из нового проекта Symfony 4, когда я запускаю эту команду:

./node_modules/.bin/encore dev-server --hot

enter image description here

А затем я изменяю файл scss (изменяюцвет фона тега тела на примере), оболочка реагирует

enter image description here

Но мой браузер не обновляется автоматически!Я всегда должен перезагрузить страницу вручную, чтобы увидеть последние изменения CSS.Где я могу сделать мистику?

Спасибо!

=> Я тестировал в разных браузерах => Если я изменяю пользовательский файл javascript, браузер автоматически обновляется!наоборот, когда я изменяю файл scss

=> Структура каталогов моих активов:

enter image description here

=> Мой контент webpack.config.js:

var Encore = require('@symfony/webpack-encore');

Encore
    // directory where compiled assets will be stored
    .setOutputPath('public/build/')
    // public path used by the web server to access the output path
    .setPublicPath('/build')
    // only needed for CDN's or sub-directory deploy
    //.setManifestKeyPrefix('build/')

    /*
     * ENTRY CONFIG
     *
     * Add 1 entry for each "page" of your app
     * (including one that's included on every page - e.g. "app")
     *
     * Each entry will result in one JavaScript file (e.g. app.js)
     * and one CSS file (e.g. app.css) if you JavaScript imports CSS.
     */
    .addEntry('app', './assets/js/app.js')
    .addEntry('article/main', './assets/js/article/main.js')
    .addStyleEntry('article/style','./assets/css/article/style.scss')
    //.addEntry('page2', './assets/js/page2.js')

    /*
     * FEATURE CONFIG
     *
     * Enable & configure other features below. For a full
     * list of features, see:
     * https://symfony.com/doc/current/frontend.html#adding-more-features
     */
    .cleanupOutputBeforeBuild()
    .enableBuildNotifications()
    .enableSourceMaps(!Encore.isProduction())
    // enables hashed filenames (e.g. app.abc123.css)
    .enableVersioning(Encore.isProduction())

    // enables Sass/SCSS support
    .enableSassLoader()

    // uncomment if you use TypeScript
    //.enableTypeScriptLoader()

    // uncomment if you're having problems with a jQuery plugin
    //.autoProvidejQuery()
;

module.exports = Encore.getWebpackConfig();

=> И мой автоматически сгенерированный файл public / build / manifest.json:

enter image description here

1 Ответ

0 голосов
/ 01 октября 2018

с учетом документации здесь Замена горячего модуля (HMR) на данный момент не работает для всех.Это должно работать для Vue.js, но это все.Для получения дополнительной информации вы можете проверить документацию для HMR .

TL: DR Ваши пользовательские активы js & css не должны быть перегружены в текущем состоянии HMR.Вам придется перезагрузить браузер вручную.Я не знаю, знаете ли вы о параметре --watch, но он позволит вам компилировать код каждый раз, когда файл изменяется.

Удачи

...